我正在尝试获取我的Rails API以在camelCase中呈现所有JSON响应。目前,我正在为序列化程序使用Netflix Fast JSON API,并呈现如下错误:
render json: { errors: command.errors }, status: :unauthorized
对于Netflix Fast JSON API序列化程序,我一直在向每个序列化程序添加set_key_transform :camel_lower
,这似乎可以解决问题(尽管如果有人知道如何将其设为默认值,将不胜感激)。
但是对于渲染错误,我不确定使用骆驼套的最佳方法。如果有人对此有任何经验,请告诉我您的处理方法!理想情况下,有一种方法可以做到这一点,即不会对每个渲染调用都增加太多语法。
更新
在序列化错误中,我在应用程序控制器上添加了一个辅助方法:
def render_error(errors_params, status)
render json: {
errors: errors_params
}.deep_transform_keys { |key| key.to_s.camelize(:lower) }, status: status
end
对于Netflix Fast JSON API,我采纳了@spickermann的建议,并添加了一个应用程序序列化器,以供其他序列化器继承自:
class ApplicationSerializer
include FastJsonapi::ObjectSerializer
set_key_transform :camel_lower
end
class SomeSerializer < ApplicationSerializer
attributes :attribute, :other_attribute
end
答案 0 :(得分:1)
您可以创建一个ApplicationSerializer
,所有其他序列化程序都可以从中继承:
class ApplicationSerializer
include FastJsonapi::ObjectSerializer
set_key_transform :camel_lower
end
class FooBarSerializer < ApplicationSerializer
attributes :buzz, :fizz
# ...
end
答案 1 :(得分:1)