我试图让Rails API在camelCase中呈现所有JSON响应。目前,我正在使用作为序列化程序,并呈现如下错误:
render json: { errors: command.errors }, status: :unauthorized对于Netflix序列化程序,我一直在每个序列化程序中添加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对于,我采纳了@spickermann的建议,并为其他要继承的序列化程序添加了一个应用程序序列化程序:
class ApplicationSerializer
include FastJsonapi::ObjectSerializer
set_key_transform :camel_lower
endclass SomeSerializer < ApplicationSerializer
attributes :attribute, :other_attribute
end发布于 2019-03-17 19:12:24
您可以创建一个ApplicationSerializer,所有其他序列化程序都可以继承它:
class ApplicationSerializer
include FastJsonapi::ObjectSerializer
set_key_transform :camel_lower
end
class FooBarSerializer < ApplicationSerializer
attributes :buzz, :fizz
# ...
endhttps://stackoverflow.com/questions/55210512
复制相似问题