Rails自带RESTful资源,但你是否将其用于实际的公共API?如果是,你如何实现API版本控制,例如example.com/api/v2/foo/bar
?
Rails自带RESTful资源,但你是否将其用于实际的公共API?如果是,你如何实现API版本控制,例如example.com/api/v2/foo/bar
?
map.resources :posts, :path_prefix => '/:version'
在posts_controller.rb文件中
class PostsController < ApplicationController
def index
respond_to do |format|
format.xml do
if params[:version] == 'v1'
# ...
else
# ...
end
end
end
end
end
2) 您还可以考虑为每个版本添加自定义响应格式
在 initializers/mime_types.rb 文件中
Mime::Type.register_alias "application/xml", :v1
Mime::Type.register_alias "application/xml", :v2
在posts_controller.rb文件中
class PostsController < ApplicationController
def index
respond_to do |format|
format.v1 do
# ...
end
format.v2 do
# ...
end
end
end
end