RailsでAPIを作ったときに、URLにバージョンを含める方法です。
次のような感じでv1
などを含めます。
- 変更前://api.example.com/hello
- 変更後://api.example.com/v1/hello
ルーティングの登録
/v1/hello
へのパスをルーティングファイルに追加します。
ポイントはバージョンを表現するのにnamespace
を使う点です。
@routes.rb
Rails.application.routes.draw do namespace :v1 do get 'hello', to: 'hello#index' end end
コントローラの作成
app/controllers
にv1
フォルダを作成し、hello_controller.rb
を作成します。
ポイントはV1::HelloController
とする点です。namespace名が頭に付きます。
@app/controllers/v1/hello_controller.rb
class V1::HelloController < ApplicationController def index render text: 'hello API V1.' end end
これで、//api.example.com/v1/hello
へアクセスできるようになりました。バージョンが上がったときは同じようにnamespaceを追加していきます。
(補足)バージョンごとのルート
//api.example.com/v1/
のようなバージョンごとのルートへのルーティングは次のように記述します。
namespace
の中でroot
を使うだけです。
@routes.rb
Rails.application.routes.draw do namespace :v1 do root to: 'application#index' end end