【发布时间】:2016-09-16 18:15:34
【问题描述】:
我需要为基于 Rails 的应用程序命名空间 API。
我使用Active Model Serializer,但现在我需要对我的 API 进行版本控制。
怎么做?
我还有子域限制。对于 API,我希望...
api.domain.com/v1/users/
与(例如):id 和 :name 对应 User
api.domain.com/v2/users/
与(例如):id :name :ranking 为User
那么,我应该如何为每个命名空间创建不同的Serializer?
而且...我必须在不同的控制器或不同的文件中创建不同的Serializer 吗?具体如何?
谢谢大家。
更新
一些代码:
routes.rb
constraints subdomain: 'api', default: {format: 'json'} do #api.domain.com
#API V1
namespace :v1 do
#resources for v1
end
#API V1
namespace :v2 do
#resources for v2
end
我在 controllers/v1/resource_controller.rb 和 module V1 和 render json: @list 中呈现资源的ALL信息。
所以,Rails 没有调用我放在 serializers/v1/resource_serializer.rb 中的序列化程序
编辑:命名空间有效!
【问题讨论】:
-
@MirzaMemic 谢谢。我读过,但现在 Rails 不使用序列化程序。请检查问题的更新。
标签: ruby-on-rails ruby ruby-on-rails-5