如何从web命名空间控制器调用rails namespaced api?

时间:2014-05-08 14:44:40

标签: ruby-on-rails ruby-on-rails-4

是这样的:

我有一个rails项目。在其中,我有一个api的命名空间/子域和web的命名空间/ rootdomain。 我想将所有业务逻辑放在api中,并简单地从Web命名空间控制器中调用它。

http://api.example.com => API
http://example.com =>网络

关于我如何组织项目的任何想法?我如何进行内部通话?或者是另一种(更好的)方法吗?

由于

1 个答案:

答案 0 :(得分:-1)

使用它:

每个Rails开发人员迟早会想要构建他的第一个API。

首先要注意的是控制器。

如果您希望自己的API速度很快(我敢打赌),那么您应该考虑使用ActionController::Metal

诀窍是ActionController::Base有许多API不需要的中间件,通过使用包含最少模块的Metal控制器,可以实现高达40%的加速。 让我们看看您的基本金属控制器可能是什么样子:

class Api::V1::BaseController < ActionController::Metal
  include ActionController::Rendering        # enables rendering
  include ActionController::MimeResponds     # enables serving different content types like :xml or :json
  include AbstractController::Callbacks      # callbacks for your authentication logic

  append_view_path "#{Rails.root}/app/views" # you have to specify your views location as well
end