簡體   English   中英

如何從另一個Rails應用程序獲得在遠程Rails服務器上運行API的響應

[英]how to get a response of running an API on remote rails server from another rails application

我必須安裝Rails應用程序,我的目標是在遠程Rails應用程序上調用API並獲取該API的結果。
例如:
第一個應用程序具有update() API,該API進行一些處理並創建一個稱為data的哈希
現在,我想從第二個應用程序調用update() ,並希望data哈希作為響應。

我現在正在使用RestClient.get(url) url,是第一個應用程序的url,並附加了API名稱。

這是否可以解決我的要求,或者還有其他更好的方法嗎?

有一種稱為ActiveResource的產品...曾經內置在導軌中,但現在是單獨的寶石。

https://github.com/rails/activeresource

我在工作的地方經常使用它。

盡管它有一些怪癖,但在提供類似ActiveRecord的行為方面做得相當不錯。 您執行Model.save ,它會將json發送到后端應用程序的modelscontroller#createmodelscontroller#update操作。

為此,我將使用HTTParty,輕量級的HTTP ruby​​客戶端。

只需致電

resp = HTTParty.get(url)
resp.body # => displays body of the response
JSON.parse(resp.body) # => parses JSON if you need to parse it

參考: https : //github.com/jnunemaker/httparty

我目前正在從事此類項目,但是我正在使用AJAX從另一個站點獲取數據。 如果您的一個站點運行在https ,那么您必須照顧好跨站點腳本編寫,確保調用的安全性,並且最重要的是,如果您的另一個應用程序運行在http上,則可能會出現問題。

我找到了問題的答案,我可以在遠程服務器API中使用render :test => data.to_json ,很好地解析並發送data哈希以響應調用應用程序,這解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM