Ruby on rails 在rails应用程序中,我在哪里实现对外部客户端的调用
我正在编写一个rails应用程序,它调用几个外部web API,例如Geonnames。我的想法是在单独的模块或类中捕获此逻辑,并从模型和控制器类中调用它们。在哪里放置这样的代码有什么最佳实践吗?它应该是独立的非ActiveRecord模型类还是lib文件夹中的模块?或者,在需要WS调用的ActiveRecord类中,简单地将WS调用实现为静态方法更好吗Ruby on rails 在rails应用程序中,我在哪里实现对外部客户端的调用,ruby-on-rails,Ruby On Rails,我正在编写一个rails应用程序,它调用几个外部web API,例如Geonnames。我的想法是在单独的模块或类中捕获此逻辑,并从模型和控制器类中调用它们。在哪里放置这样的代码有什么最佳实践吗?它应该是独立的非ActiveRecord模型类还是lib文件夹中的模块?或者,在需要WS调用的ActiveRecord类中,简单地将WS调用实现为静态方法更好吗 Thx有几种方法,但通常我坚持以下原则 他们住在/lib(如果你有很多,你可以创建一个/lib/clients子目录) 它们的名称类似于Geo
Thx有几种方法,但通常我坚持以下原则
/lib
(如果你有很多,你可以创建一个/lib/clients
子目录)GeonamesClient
或GeonamesWrapper
class ClientBase
# maybe we pass in a logger, or something
def initialize(options={})
end
# perhaps a central way to call the api
def call(method_name, *args)
end
end
class GeonamesClient < ClientBase
base_uri "www.geonames.org"
def postal_codes(country)
...
end
end
有几种方法可以做到这一点,但通常我坚持以下原则
/lib
(如果你有很多,你可以创建一个/lib/clients
子目录)GeonamesClient
或GeonamesWrapper
class ClientBase
# maybe we pass in a logger, or something
def initialize(options={})
end
# perhaps a central way to call the api
def call(method_name, *args)
end
end
class GeonamesClient < ClientBase
base_uri "www.geonames.org"
def postal_codes(country)
...
end
end