📮

【Rails 8】APIモードの導入方法とPostmanを用いた動作確認

2025/01/04に公開

はじめに

こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。

今回は最新のRails8を使ってAPIモードのプロジェクトを構築する方法PostmanでAPIの動作確認する手順について簡潔にまとめました。

最後まで目を通していただけると嬉しいです!🎉

対象者

  • RailsのAPIモードを初めて使う人
  • APIモードと通常モードの違いを知りたい人
  • Postmanをダウンロードしている人

1. Rails 8のインストール

Rubyバージョンの確認とアップグレード

Rails 8はRuby 3.2.0以上が必要です。
現在のバージョンを確認して必要に応じてインストールやアップグレードを行います。

$ ruby -v
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [arm64-darwin23]
$ rbenv install 3.3.0
$ rbenv global 3.3.0

Rails 8のインストール

$ gem install rails -v 8.0.1
$ rails -v
Rails 8.0.1

下記、Rails 8.0の注目ポイントのキーワード 🔑

  • Kamal
  • Thruster
  • SQLite関連
    • Solid Cable
    • Solid Cash
    • Solid Queue
  • Propshaft

参考:
Ruby on Rails 8.0 リリースノート
Ruby on Rails 8の主要な新機能・機能追加・変更点

2. Railsプロジェクトの作成

APIモードのスタート

APIモードでプロジェクトを作成します。

$ rails new blog --api
  • --apiオプションでビュー、ヘルパー、アセットパイプラインの設定がスキップされます。

3. APIの設定

Routesの設定

APIのルートを設定します。

Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      resources :posts
    end
  end
end
  • namespace :api … URLとコントローラを整理。
  • namespace :v1 … APIバージョニングの指定。
namespaceとは?

コードやURLを階層ごとに整理する仕組みと認識しています。

具体的には、URLが/postsの場合にapp/controllers/posts_controller.rbが該当しますが、管理者であるAdminも同じファイルが必要になるとします。このようにリソースが増えた際に、ファイル名が衝突する可能性が生じます。

それを防ぐ目的としてnamespaceを用いることで、URLとコントローラーを明示的に分けられるため誰が見ても「このファイルはAPI用だ」「こちらのファイルはAdmin用だ」と分けることができます。

通常のユーザー用

  • URL例: /posts
  • コントローラ: app/controllers/posts_controller.rb

管理者用

  • URL例: /admin/posts
  • コントローラ: app/controllers/admin/posts_controller.rb

参考

PostsControllerの作成

$ mkdir -p app/controllers/api/v1
$ touch app/controllers/api/v1/posts_controller.rb
module Api
  module V1
    class PostsController < ApplicationController

      # 全投稿を取得する
      def index
        posts = Post.order(created_at: :desc)
        render json: { status: "Success", message: "Loaded posts", data: posts }
      end

      # 特定の投稿を取得する
      def show
        @post = Post.find(params[:id])

        render json: { status: "Success", message: "Loaded the post", data: @post }
      end

      # 投稿を新規作成する
      def create
        post = Post.new(post_params)

        if post.save
          render json: { status: "Success", data: post }
        else
          render json: { status: "Error", data: post.errors }
        end
      end


        # 特定の投稿を更新する
      def update
        @post = Post.find(params[:id])

        if @post.update(post_params)
          render json: { status: "Success", message: "Updated the post", data: @post }
        else
          render json: { status: "Error", message: "Not updated", data: @post.errors }
        end
      end

        # 特定の投稿を削除する
      def destroy
        @post = Post.find(params[:id])

        @post.destroy
        render json: { status: "Success", message: "Deleted the post", data: @post }
      end

      private

      def post_params
        params.require(:post).permit(:title)
      end
    end
  end
end

4. Seedデータの投入

Rails Consoleの実行

$ bin/rails c
Post.create(title: "title 1")
Post.create(title: "title 2")
Post.create(title: "title 3")
exit

5. Postmanを使ったAPI動作確認

Railsサーバーの起動

$ bin/rails s

APIの確認

Postmanを使用して、APIが正常に動作するか確認します。

  • 一覧取得 (GET)
    • URL: http://localhost:3000/api/v1/posts
    • 対応例:
[
  {"id":1,"title":"title 1"},
  {"id":2,"title":"title 2"},
  {"id":3,"title":"title 3"}
]

無事、登録したデータを取得できました。🙌


  • 詳細取得 (GET)
    • URL: http://localhost:3000/api/v1/posts/3
    • 今回はPostのid: 3を取得してみます。

無事、登録したデータを取得できました。🙌


  • 新規作成 (POST)
    • URL: http://localhost:3000/api/v1/posts
    • Body: 今回は「Title 4」で新規作成します。
{
  "title": "Title 4"
}


  • 更新 (PUT)
    • URL: http://localhost:3000/api/v1/posts/1
    • Body: Postのid: 4を「updated title 4」へ更新します。
{
  "title": "Updated Title 4"
}

一覧で確認

無事、POSTのid: 4が「Title 4」から「Updated Title 4」に変更されていることが確認できます。


  • 削除 (DELETE)
    • URL: http://localhost:3000/api/v1/posts/3
    • Postのid: 3を削除します。

一覧で確認

無事、Postのid: 3が削除されていることを確認しました。🙌

まとめ

Rails 8を使ったAPIモードの構築はシンプルで効率的です。
本記事では、以下の手順を通じてAPI開発と動作確認の基礎を学びました。

  1. Rubyのバージョン確認とRails 8のインストール
  2. APIモードのプロジェクト作成とルーティング設定
  3. コントローラの実装とデータ登録
  4. Postmanを活用したAPIの動作確認

これらのステップを実践することで、API開発の流れを具体的に体感できたはずです。Rails8の新機能とPostmanを組み合わせれば、よりスムーズなAPI開発を進めることができます。

参考:
Postmanを使ってAPIの確認をしてみる

最後に

ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね❤️」を押していただけると嬉しいです 🎉

noteでも記事を執筆していますので、ぜひチェックしてみてください。
https://note.com/take_lifelog/n/n58df7ce7af6f

他にもこのようなことについて記載しているのでお読みいただければ幸いです。

https://zenn.dev/take_tech/articles/275e5f4242973d

https://zenn.dev/take_tech/articles/374817f256ec9d

最後までお読みいただき、誠にありがとうございました!

Discussion