0

我正在开发一个与大型第三方 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 并且从基类继承的所有子类都可以访问,但我真的想避免这种方法。

有没有更好的方法可以避免将这些参数传递给每个方法?

4

0 回答 0