版本控制API重复



在我的Ruby on Rails应用程序中,我的API路线看起来像这样:

namespace :api, defaults: { format: :json }  do
  namespace :v1 do
    resources :users
    resources :clients
  end
end

现在,我对users资源的响应格式将会更改,因此我想创建新的API版本:V2。我的clients资源不会更改,因此我需要将jbuilder模板和控制器复制到v2 API名称空间。这将是重复。有没有办法避免这种情况?说每当有人试图达到api/v2/clients/*时,我都会将他重定向到api/v1/clients*

routes.rb是" Just Ruby",因此您应该能够制作一个简单的循环来处理这两个版本:

namespace :api, defaults: { format: :json }  do
  [:v1, :v2].each { |version|
    namespace version do
      resources :users
      resources :clients
    end
  }
end

这不是 redirect (如您在问题中提到的(,这仅表示您的API返回两个URL的结果。我认为这是一个更简单的解决方案,在大多数情况下,可以说是对API响应的反应。

最新更新