我正在开发一个与大型第三方 rest api 高度耦合的应用程序。
api 的 url 看起来类似于:
http://somedomain.com/state/:state_id/city/:city_id/appointment/:id
http://somedomain.com/state/:state_id/city/:city_id/person/:id
处理上述 api 的模型看起来有点像这样:
class Appointment
SINGULAR_PATH = '/appointment'
def person
Person.find(state_id, city_id, person_id)
end
end
class Person
SINGULAR_PATH = '/person'
def self.find(state_id, city_id, id)
RestCall.get(state_id, city_id, SINGULAR_PATH, id)
end
def qualification
Qualification.find(state_id, city_id, qualification_id)
end
end
class Qualification
SINGULAR_PATH = '/qualification'
def self.find(state_id, city_id, id)
RestCall.get(state_id, city_id, SINGULAR_PATH, id)
end
end
在所有休息电话中,我需要传入 state_id 和 city_id 来组成 url。有许多这样的嵌套调用来检索其他资源,并且在每个实例中,state_id 和 city_id 都会沿链传递。
我曾想过使用类变量和继承,以便基类设置 state_id 和 city_id 并且从基类继承的所有子类都可以访问,但我真的想避免这种方法。
有没有更好的方法可以避免将这些参数传递给每个方法?