🀄

RailsのAPIモードを触ってみるの巻

2021/01/09に公開

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の違いに関してはこちらにわかりやすくまとまっていました。
https://qiita.com/ryosuketter/items/9240d8c2561b5989f049
今回はお試しなのでscopeにしていますが、namespaceにすべきなんでしょうね。

ここまでの動作をテスト

seedファイルのデータを反映させてcurlコマンドで実行。

curl http://localhost:3000/mj/v1/formats/役のID

お、返ってきた!

{"name":"ri-chi","char":"立直","han":1,"exp":"と宣言し、1000点棒を供託する"}

これまでのまとめ

現状はリクエストに対してただjsonを返すだけなので、次回はエラーレスポンスを作ってみたいと思います。
あと、uriの設計というところを意識して修正していきます。

Discussion