Rails应用程序之间的通信

时间:2012-04-23 19:19:37

标签: ruby-on-rails ruby http web-applications

我已经构建了两个需要在彼此之间进行通信和发送文件的rails应用程序。例如,一个rails应用程序将发送查看其他应用程序数据库中的表的请求。然后另一个应用程序将呈现该表的json并将其发回。我还想要一个应用程序将存储在其公共目录中的文本文件发送到另一个应用程序的公共目录。

我从未做过这样的事情,所以我甚至不知道从哪里开始。任何帮助,将不胜感激。谢谢!

5 个答案:

答案 0 :(得分:5)

对于几乎所有的网络应用程序而言,您的要求都是常见的,无论是否为rails,大多数现代Web应用程序都需要相互通信。但是你需要掌握一点点理解,

网站不应该直接访问彼此的内部数据(例如表格),(即使它们是由相同的开发人员使用相同的语言(在本例中为Rails)构建),

这就是Web服务的用武之地,因此您应该通过Web服务公开您的数据,这样不仅rails应用程序可以使用它,而且任何知道如何使用Web服务的应用程序都将获益。

回到你的问题与Rails,rails支持开箱即用的REST Web服务,所以做一些关于Web服务的谷歌搜索,带有rails的REST Web服务

HTH

答案 1 :(得分:2)

作为起点,请看ActiveResource

Railscast

docs

答案 2 :(得分:1)

RabbitMQ等消息排队系统可用于在不同应用程序之间进行内部通信,例如“邮件程序”应用程序和主“中心”应用程序。

或者,你可以使用共享连接,例如redis将东西粘贴到一个应用程序中的“队列”上,然后读取它们以便从另一个应用程序进行处理。

答案 3 :(得分:0)

在最近的Rails版本中,开发仅API应用程序非常容易。在Rails核心主服务器中,这些应用程序甚至还有一种特殊的应用程序类型(直到它再次被拉出)。但它仍然可以作为插件使用,并且可能有一天实际上又成为Rails核心的一部分。有关详细信息,请参阅http://blog.wyeworks.com/2012/4/20/rails-for-api-applications-rails-api-released

要实际开发和维护后端服务的API并确保后端和前端对资源有相同的理解,您可以使用ROAR这是构建优秀API的好方法。

通常,您应该使用API​​完全定义后端应用程序。试图聪明并跳过一些设计步骤只会让你头疼... ...

答案 4 :(得分:0)

结帐Morpheus。它允许您创建RESTful服务并在客户端中使用熟悉的ActiveRecord语法。