如何从另一个 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 进行一些处理并创建一个名为 data
的哈希 现在我想从第二个应用程序调用 update() 并希望 data 散列作为响应。

我现在正在做的是使用 RestClient.get(url) url 是第一个应用程序的 url 附加 API 名称。

这是否解决了我的要求,或者还有其他更好的方法吗?

我目前正在从事此类项目,但我正在使用 AJAX 从另一个站点获取数据。您必须注意跨站点脚本,使调用安全,并且最重要的是,如果您的一个站点在 https 上 运行,那么如果您的另一个应用程序是 [=15],则可能会出现问题=] 在 http 上。

有一个名为 ActiveResource 的产品...曾经内置于 rails 但现在是单独的 gem。

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

我找到了问题的答案, 我可以在我的远程服务器 API 中使用 render :test => data.to_json,这很好地解析并发送 data 哈希以响应调用应用程序,这解决了我的问题。