railsのroutingが今までやったことがない系統で戸惑ったのでその時のメモ書きです。
routingのパス指定
railsのroutingはroutes.rbというファイルに書きます。
具体的には
Rails.application.routes.draw do
namespace :V1 do
resources :service
end
end
といった形で、構造とAPIのパスを一致させるように書きます。
resouces
にはコントローラーの名前をシンボル型で渡すことでcontrollerとパスを結びつけます。
今回の場合では パスは V1/service
と結びつけられAPIが生成されます
特定のメソッドのみ適用する
ただ、上記の場合だとパスに GET,POST,DELETEなどrailsがデフォルトで存在するメソッドのものが全て生成されてしまいます。
GET,POSTのみ指定する場合は以下のように書きます。
Rails.application.routes.draw do
namespace :V1 do
resources :service, only:[:index]
end
end
これでGETのみが生成され、contollerのindexメソッドのみが実際のAPIパスと結びつけられました。
パスに割り当てらるパラメーターの上書き
例えば以下の書き方だと
Rails.application.routes.draw do
namespace :V1 do
resources :service, only:[:destroy]
end
end
DELETEメソッドのAPIが生成されて、
V1/service/:id
というパスと結びつけられました。
ただ、書き方にはよっては:idはしっくりこないケースがあるのでこれを書き換えたい場合はこう書きます。
Rails.application.routes.draw do
namespace :V1 do
resources :service, param: :user_id, only:[:destroy]
end
end
これで、
V1/service/:user_id
になりました。
#最後に
これらの他にも色々機能はありますが、今回これまで