ActionController :: API和ApplicationController有什么区别

时间:2018-01-20 15:40:51

标签: ruby-on-rails

我有一些用于API响应的控制器,但应用程序的其余部分是常规的Rails 5应用程序。

如果我将基类更改为

,有什么区别
ApplicationController::API

ApplicationController

我注意到如果我做:: API然后我需要添加json:渲染时,我才能渲染msg

幕后是从API继承的请求/响应更加精简?

class Api::V1::TestController < ????
  def index
    msg = {status: "ok", message: "hello world"}
    render json: msg
  end
end

1 个答案:

答案 0 :(得分:4)

来自docsgooglies上的第一个点击...)

  

API Controller是ActionController :: Base的轻量级版本,为不需要完整Rails控制器提供的所有功能的应用程序创建,允许您创建仅具有API应用程序所需功能的控制器。 / p>      

API控制器与普通控制器的不同之处在于,默认情况下,它不包含浏览器访问通常所需的许多功能:布局和模板呈现,cookie,会话,闪存,资产和等等。这使整个控制器堆栈更薄,适用于API应用程序。这并不意味着如果您需要它们就不会有这样的功能:它们都可以包含在您的应用程序中,它们不是默认API控制器堆栈的一部分。