【问题标题】:Versioning API duplication版本控制 API 复制
【发布时间】:2017-09-23 10:54:06
【问题描述】:

在我的 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*

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 routes


    【解决方案1】:

    routes.rb 是“只是 Ruby”,因此您应该能够创建一个简单的循环来处理这两个版本:

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

    这不会重定向(正如您在问题中提到的),它只是意味着您的 API 为两个 URL 返回相同的结果。我认为这是一个更简单的解决方案,并且可以说是一种反模式,在大多数情况下,无论如何都要重定向 API 响应。

    【讨论】:

      猜你喜欢
      • 2012-05-31
      • 2016-05-22
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 2018-07-20
      • 2020-11-26
      • 2018-02-21
      相关资源
      最近更新 更多