2012-04-23 199 views
5

我已經構建了兩個需要相互通信和發送文件的rails應用程序。例如,一個rails應用程序會發送請求來查看其他應用程序數據庫中的表格。然後其他應用程序將呈現該表的json並將其發回。我還想讓一個應用程序將存儲在其公共目錄中的文本文件發送到其他應用程序的公共目錄。Rails應用程序之間的通信

我從來沒有做過這樣的事情,所以我甚至不知道從哪裏開始。任何幫助,將不勝感激。謝謝!

回答

2

作爲一個起點,看看ActiveResource

Railscast

docs

+2

ActiveResource或多或少被棄用。從Rails 4.0開始,它將不再是Rails的標準部分。除非有人加緊維護它,否則它將會消失... – 2012-04-23 20:27:33

+0

啊,那太糟糕了。至少這個想法是足夠的,所以希望它提供了一個起點。主要的是,你需要一個Rails應用程序爲世界提供一個RESTful接口,然後另一個應用程序恰好使用該接口來獲取它所需的數據。 – jdl 2012-04-23 21:22:52

+0

第2條鏈接返回404條。 – Alan 2013-12-21 16:59:03

5

您的要求是很常見的,幾乎所有的網絡應用程序,不論軌道,彼此是大多數現代Web應用程序所需要的溝通。但有一點理解,你需要堅持,

網站不應該直接訪問彼此的內部數據(如表),(即使它們是由相同的語言構建的(在這種情況下,Rails)由相同的開發人員),

這就是網絡服務發揮作用的地方,所以你應該公開你的數據通過web服務,這樣不僅rails應用程序可以消費,但任何應用程序知道如何消費網絡服務將會受益。

反觀使用Rails你的問題,軌支持REST Web服務的開箱即用,所以做了一些谷歌上搜索關於Web服務,REST Web服務與導軌

HTH

0

在最近的Rails版本中,開發僅適用於API的應用程序相當容易。在Rails核心大師中,這些應用程序甚至還有一個特殊的應用程序類型(直到它再次被抽出)。但它仍然可以作爲插件使用,並且可能有一天會再次成爲Rails核心的一部分。有關更多信息,請參見http://blog.wyeworks.com/2012/4/20/rails-for-api-applications-rails-api-released

要真正開發和維護後端服務的API並確保後端和前端對資源的理解相同,可以使用ROAR這是構建優秀API的好方法。

通常,您應該使用API​​完全定義您的後端應用程序。試圖變得聰明並跳過一些設計步驟只會讓你長期頭痛......

+0

您可以推薦資源來了解良好的API設計嗎? – danieldekay 2013-12-09 22:05:53

+0

試試Apigee的這篇文檔:http://info.apigee.com/Portals/62317/docs/web%20api.pdf – bryanbraun 2014-05-08 03:25:12

0

退房Morpheus。它允許您創建RESTful服務並在客戶端中使用熟悉的ActiveRecord語法。

1

消息隊列系統(如RabbitMQ)可用於在不同應用程序(如「郵件程序」應用程序和主「集線器」應用程序)之間進行內部通信。

或者,您可以使用共享連接來像redis之類的東西將事物粘貼到一個應用程序的「隊列」中,並將它們讀取以供其他應用程序處理。

相關問題