繁体   English   中英

在Rails API中标准化JSON响应

[英]Standarize JSON response in Rails API

我目前正在使用Rails构建API。 所有响应均以JSON表示。 例如,我的控制器使用:

render json: @users, status: :ok

或者,当我设置respond_to :json ,我使用:

respond_with @users, status: :ok

我想知道什么是证明我的回答最佳的方法。 喜欢:

{
  error_code: 0,
  content: ... (@users as JSON)
}

我尝试过使用JBuilder和序列化器( https://github.com/rails-api/active_model_serializers ),但是我必须将模板添加到每个视图/序列化器中。

我想要一种优雅的方法 ,以便任何调用renderrespond_with控制器都具有相同的模板。

也许不是您要找的东西,但是当我必须编写这类API的代码时,我只需在所有控制器可以访问的地方定义一个方法,然后始终在其上调用render / redirect。

调节器

render json: formatted( @user, :ok )

方法

def formatted( obj, status )
  { error_code: status, content: obj }
end

不一定“优雅”,但它可读性强,有效,易于维护,并且可以正确呈现,但是您希望输出结果(此外,它不涉及对现有方法的黑客攻击,我倾向于觉得这很草率)。

很抱歉,如果您正在寻找完全不同的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM