記事を作成した目的
備忘録として記録
分からなかった箇所
/config/routes.rb
namespace :api do
namespace :v1 do
mount_devise_token_auth_for "User", at: "auth", controllers: {
registrations: "api/v1/auth/registrations",
}
end
end
1, mount_とは「RailsのエンジンやRackアプリケーションを既存のRailsアプリケーションに組み込む機能」である。devise_token_authの提供しているルーティングを使うために必要な呪文のようなものとざっくり認識する
自動生成される基本ルート
# POST /auth # 新規登録
# POST /auth/sign_in # ログイン
# DELETE /auth/sign_out # ログアウト
# GET /auth/validate_token # トークン検証
# PATCH /auth # ユーザー情報更新
# DELETE /auth # アカウント削除
2,at: "auth"はURL「/api/v1」の次に「/auth」のような深いパスを生成する
3,controllers: { registrations: "api/v1/auth/registrations" }は、既存のデフォルトコントローラーをカスタムコントローラーで置き換えている
たとえばデフォルトのままだと、POST /api/v1/auth をリクエストした時DeviseTokenAuth::RegistrationsController#createを呼び出そうとしてしまう。しかし、controllersオプションにてカスタムコントローラーによる置き換えを行なった場合、POST /api/v1/authリクエストはApi::V1::Auth::RegistrationsController#createを呼び出す。これによって正しいルーティング設定ができる。
参考
Claudeによる回答