为rails应用程序创建Web服务客户端的正确位置是什么?

时间:2017-10-24 22:35:59

标签: ruby-on-rails ruby savon

我想在rails应用程序中使用savon连接到Web服务,但我不知道从哪里开始。我想将它封装起来,而不仅仅是控制器中的代码。创建它的正确位置在哪里?

2 个答案:

答案 0 :(得分:0)

您可以从lib/services目录开始。通常,非Rails Ruby项目包含lib内的所有代码,因此它是不错的选择。

但是,默认情况下,lib目录中的代码不会自动在Rails中重新加载。但你可以用

设置它
# config/application.rb
config.autoload_paths << "#{Rails.root}/lib/services"

此外,您应遵循标准命名约定(lib/services/example.rb应包含类Example),以便自动加载以正常工作。

答案 1 :(得分:0)

我的建议就像hedgesky一样,在lib调用lib/third_party/third_party_name内创建一个子文件夹。

此文件夹将包含连接到您的合作伙伴所需的任何逻辑。

然后,您创建一个包含业务逻辑的服务services/...,并将调用连接器。

最后在控制器中调用您的服务。

像这样,一切都有他自己的层。更重要的是,如果您稍后使用同一个合作伙伴创建第二个应用程序。您可以在自己的gem中提取lib/third_party/third_party_name并重复使用它。