Rails访问API

时间:2013-03-16 23:23:33

标签: ruby-on-rails api design-patterns

我正在使用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

它完成了这项工作,但我不确定这是解决这个问题的好方法。这种情况有设计模式吗?

1 个答案:

答案 0 :(得分:1)

我会将http内容提取到它自己的类/模块中,包括解析响应,然后继承到你的实际模型类中,这样模型只会处理资源本身,而不是通信/解析。 / p>