7

API のバージョニングのベスト プラクティスを読みましたか? . また、バージョンを HTTP ヘッダーではなく URL パスに入れることに同意します。

これを実装するために、次のような名前空間付きコントローラーがあります。

class Api::V1::UsersController < Api::BaseController
  def show
    ...
  end
end

そして、ルートは次のとおりです。

current_api_routes = lambda do
  resource :users
end

namespace :api do
  namespace :v1, &current_api_routes
end

次にrake routes、次のようなルートを取得できます。

api_v1_user GET    /api/v1/users/:id(.:format)                       api/v1/users#show
...

そのバージョンv1.2がのコントローラーに行くようにしv1ます。次に、次のようにコントローラでマイナー バージョン番号を取得できます。

class Api::V1::UsersController < Api::BaseController
  def show
    minor_version = params[:minor_version] # minor_version = 2
    ...
  end
end

これを達成する方法はありますか?

4

1 に答える 1