Ruby on rails 3 内部RESTAPI
目前,我们的网络中有三个站点。一个是用RubyonRails编写的,另外两个是用PHP编写的。所有网站都倾向于共享大量相同的数据和逻辑。我发现自己不得不在PHP端重复我在rails端所做的大量工作。似乎我们需要一个通用的内部API来整合这一点。我以前从未构建过API,我有几个问题Ruby on rails 3 内部RESTAPI,ruby-on-rails-3,api,internal,activeresource,Ruby On Rails 3,Api,Internal,Activeresource,目前,我们的网络中有三个站点。一个是用RubyonRails编写的,另外两个是用PHP编写的。所有网站都倾向于共享大量相同的数据和逻辑。我发现自己不得不在PHP端重复我在rails端所做的大量工作。似乎我们需要一个通用的内部API来整合这一点。我以前从未构建过API,我有几个问题 性能如果我将API构建为一个单独的应用程序,它的速度似乎要慢一倍。因为它必须在API端完成整个请求/响应周期,然后再在公共应用程序端完成。有没有办法让这更快?或者是另一种方法 通过本地网络访问API如何通过本地网络访
- 性能如果我将API构建为一个单独的应用程序,它的速度似乎要慢一倍。因为它必须在API端完成整个请求/响应周期,然后再在公共应用程序端完成。有没有办法让这更快?或者是另一种方法
- 通过本地网络访问API如何通过本地网络访问API?我会在Apache中设置指向127.0.0.1的virtualhost吗
- Active Resource在我的例子中(在rails端),ActiveResource是最好的方式还是有更好的选择来使用API?我还想知道验证将如何在公共端工作。ActiveResource是否重用验证规则,或者我必须在公共端重新创建它们
- API安全性我想我现在不必太担心这个问题,因为API只能通过本地网络访问(理想情况下)。我的假设正确吗
希望这有帮助。我可以继续讨论更长的时间,但我不知道有什么好方法可以给这个一般性的问题一个具体的答案。如果有什么我可以详述的,请随意评论,我会尽我所能。这是一个很好的答案。你能谈谈我应该如何为此设置DNS/Apache吗?只需为api.mycompany.com创建一个a记录为127.0.0.1的DNS条目就足够了吗?或者,如果它指向服务器IP,并且防火墙中有一条规则仅限制对该IP的访问,这会影响性能吗?或者知道IP是本地的,并且与127.0.0.1相同,这是否足够聪明呢?这实际上取决于您的网络拓扑。如果两个应用程序都位于同一个系统上,则可以很容易地将它们直接指向对方。如果您在Apache中使用某种形式的虚拟主机,这可能并不完全正确。如果是这种情况,您可能需要在本地系统上设置一个主机记录以将其指向自身(即:在/etc/hosts中,您将把api.mycompany.com指向127.0.0.1)。至于防火墙问题,您可能需要与您的linux发行版进行核对。例如,如果你在Ubuntu上,你将使用UFW。如果您使用的是CentOS/RedHat等,您可能最终不得不直接使用iptables。就我个人而言,我认为iptables在这种情况下更容易处理。因为大部分情况下,您都会阻止您创建的API的所有传入流量。