🀄
RailsのAPIモードを触ってみるの巻
Why
APIの理解を深めたいと思い、自作してみようと思いました。
Ruby on RailsのAPIモードというのが気になっていたので、早速試しました。
APIの概要
リクエストに対し麻雀の役がjson形式で戻ってくる簡単なものです。(完全に趣味)
postはできないようにしています。
作成手順(API mode)
1.プロジェクトの作成
まずはrails newで新規のプロジェクトを作ります。
--apiというコマンドを使うことでapiモードのプロジェクトができるとのこと。
今回はdbにmysqlを指定しています。
rails new rails_api_demo --api -d mysql
2.モデルとコントローラーを作成
rails g model sample
rails g controller samples
rails db:create
rails db:migrate
モデルとコントローラーを作り、migrateを実行します(いつもどおり)
3.ルーティングの設定
routes.rb
Rails.application.routes.draw do
scope :mj do
scope :v1 do
resources :formats, only: [:index, :show]
end
end
end
ちなみにscopeやらnamespaceの違いに関してはこちらにわかりやすくまとまっていました。
今回はお試しなのでscopeにしていますが、namespaceにすべきなんでしょうね。ここまでの動作をテスト
seedファイルのデータを反映させてcurlコマンドで実行。
curl http://localhost:3000/mj/v1/formats/役のID
お、返ってきた!
{"name":"ri-chi","char":"立直","han":1,"exp":"と宣言し、1000点棒を供託する"}
これまでのまとめ
現状はリクエストに対してただjsonを返すだけなので、次回はエラーレスポンスを作ってみたいと思います。
あと、uriの設計というところを意識して修正していきます。
Discussion