我正在使用Httparty访问COLOURlovers API。但我希望以铁路方式做到这一点。
我通过在app/models/clover.rb
创建课程来管理它:
require 'httparty'
class Clover
include HTTParty
base_uri 'www.colourlovers.com/api'
然后我定义了以下方法:
def self.random(resource)
fix_params query
response = get("/#{resource}/random", { query: query })
ActiveSupport::JSON.decode(response.body)
end
然后我查询资源,如:
Clover.random :color
它完成了这项工作,但我不确定这是解决这个问题的好方法。这种情况有设计模式吗?
答案 0 :(得分:1)
我会将http内容提取到它自己的类/模块中,包括解析响应,然后继承到你的实际模型类中,这样模型只会处理资源本身,而不是通信/解析。 / p>