【发布时间】:2016-09-27 22:26:19
【问题描述】:
(Ruby 2.3.1,Rails 5.0.0.1)
我已经在 URI 中实现了 API 版本控制,并像这样添加了设计令牌身份验证:
constraints subdomain: 'api' do
scope module: 'api' do
namespace :v1 do
# V1 stuff
resources :users
mount_devise_token_auth_for 'User', at: 'auth'
end
end
end
因此,“rake routes”(示例行)的结果是:
v1_user GET /v1/users/:id(.:format) api/v1/users#show {:subdomain=>"api"}
现在在我的控制器中,任何与用户相关的助手都包含“v1”版本控制。例如:
before_action :authenticate_v1_user!
我是这个概念的新手,但不应该避免吗?如果我要升级到 v2,我必须通过所有这些帮助程序并确保我会更改它以防止它崩溃?或者升级过程会是什么样子?
感谢您的反馈!这可能是一个非常简单的问题,但我有点困惑。
【问题讨论】:
-
我会避免在名称中使用版本控制,直到您至少有 2 个不同的版本...所以只需调用它
authenticate_user!直到您有两种不同的身份验证方式,然后您可以使用authenticate_v1_user与authenticate_v2_user区别...虽然我会使用roles来处理不同的做事方式(仍然保留v1 等在路线中)。
标签: ruby-on-rails ruby versioning