Ruby on rails 以返回的JSON响应api版本的更好方法
我想知道如何用JSON响应api版本 因为我需要对响应中的版本进行硬编码Ruby on rails 以返回的JSON响应api版本的更好方法,ruby-on-rails,Ruby On Rails,我想知道如何用JSON响应api版本 因为我需要对响应中的版本进行硬编码 returned_data = { status: "ok", version: "version_num", data: symbols } render json: Oj.dump(returned_data) 这似乎不是很简单,因为我需要在每个函数中放入类似的代码 在Rails方面有更好的实践吗 routes.rb 更新lx00st的建议 如果你正在创建一个API,你应该考虑使用JSON建造
returned_data = {
status: "ok",
version: "version_num",
data: symbols
}
render json: Oj.dump(returned_data)
这似乎不是很简单,因为我需要在每个函数中放入类似的代码
在Rails方面有更好的实践吗
routes.rb
更新lx00st的建议
如果你正在创建一个API,你应该考虑使用JSON建造者而不是简单地用JSON的方式呈现你自己。一个很好的解决办法是。这将允许您定义一个全局序列化程序,该序列化程序始终包含一个特定的JSON位,它将被合并到其他响应中。这也意味着您不必手动构建JSON。
为什么不在采取行动之前将其放入相应的控制器?@lx00st我接受了您的建议,谢谢您为什么返回api版本而不将其放入uri? namespace :api, defaults: {format: 'json'} do
scope module: :v1, constraints: ApiConstraints.new(version: 1) do
resources :products
end
scope module: :v2, constraints: ApiConstraints.new(version: 2, default: true) do
resources :products
end
end
before_action :response_template
private
def response_template
@respose = {
status: "ok",
version: "v1"
}
end
def EVERY_METHOD
@respose[:data] = symbols
render json: Oj.dump( @respose )
end