0

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

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

4

1 回答 1

1

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

于 2013-03-17T13:02:00.537 回答