我有一个使用 mvc 框架的 Ruby on Rails 应用程序。截至目前,我在控制器中有 API 调用,但认为这不是适合它们的地方。我的所有 API 调用应该放入哪种类型的文件?谢谢
def getDetails(id)
api_response = HTTParty.get(base_uri, :query => {:DID => id, :DeveloperKey => devKey})
@json_hash = api_response.parsed_response
return @json_hash
end
对外部服务(第三方)的 API 调用并不特定于您的应用程序,因为他们的服务可供所有人使用(理论上)。据我了解,这些功能都在lib/
目录,因为它们不是特定于应用程序的。理想情况下,您可以从您的lib
在你的项目中,然后将其放入其他人的项目中lib/
在另一个项目中它仍然可以正常工作。
将呼叫放入lib/
。如果需要,您可以根据控制器中返回的数据创建模型。
它看起来像这样:
应用程序/控制器/
class YourController < ApplicationController
def getDetails
# keep in mind, api call may fail so you may want surround this with a begin/rescue
api_response = YourApiCall.new.get_details(params[:id])
# perhaps create a model
@model = SomeModel.new(fname: api_response[:first_name], lname: api_response[:last_name])
# etc...
end
end
lib/
require 'HTTParty'
Class YourApiCall
def get_details(id)
HTTParty.get(base_uri, :query => {:DID => id, :DeveloperKey => devKey})
@json_hash = api_response.parsed_response
return @json_hash
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)