我使用jsonapi-resources gem使用rails构建json api。图书馆真的很棒,它做了很多工作。
然而,我们的数据库中的某些列名称并不是真正有意义地在API中显示。
所以,我的问题是:可以重命名资源中的属性/属性吗?
示例:
我们说我的模型用户属性为login
。
class User < ActiveRecord::Base
attr_accessor :login
end
我希望API中的login
显示为username
,例如:
class UserResource < JSONAPI::Resource
attribute :username, map_to: :login
end
谢谢!
答案 0 :(得分:2)
我认为您需要使用alias或alias_method。 http://blog.bigbinary.com/2012/01/08/alias-vs-alias-method.html
答案 1 :(得分:2)
为:username
属性设置:login
alias:
class User < ActiveRecord::Base
attr_accessor :login
alias_attribute :username, :login
end
然后在JSONAPI::Resources
(JR)中,您可以指定username
属性,如下所示:
class UserResource < JSONAPI::Resource
attribute :username
end
通过设置别名,您已将username
属性映射到login
属性,因此无论您使用的是username
还是login
,它都无关紧要将返回相同的值。
答案 2 :(得分:1)
通常,更改属性名称或值的最简单方法是重新定义属性。在你的情况下,它将是:
scope.required
这是自述文件:https://github.com/cerebris/jsonapi-resources#formatting