所以我有2个服务进行api调用,他们做了不同的事情但是在课堂顶部都有相同的httparty设置,最好的方式是分享这些设置吗?使用继承还是其他一些编码机制?
e.g。
class FirstService
include HTTParty
format :json
base_uri: "url"
basic_auth
default_timeout 360
和
class SecondService
include HTTParty
format :json
base_uri: "url"
basic_auth
default_timeout 360
我可以创建一个顶级类,并以某种方式继承这两个值吗?
答案 0 :(得分:0)
你可以这样做。如果服务之间有继承,我建议只做这件事(Animal是Cat和Dog的逻辑父类,但不是Cat和Car的逻辑父类)。否则,我建议使用模块包括:
module HTTPartyReady
include HTTParty
format :json
base_uri: "url"
basic_auth
default_timeout 360
end
class FirstService
include HTTPPartyReady
end
答案 1 :(得分:0)
在config/settings.yml
中创建一个文件,如下所示:
development:
base_uri: "url"
default_timeout 360
test:
base_uri: "url"
default_timeout 360
production:
base_uri: "url"
default_timeout 360
然后在您的应用中或者您使用这些值时,使用以下命令访问这些值:
Rails.application.settings.base_uri