【rails apiモードについて】既存のアプリをAPIモードにして動作をTalend API Testerで確認する

プログラミング

※プロモーションページが含まれる場合があります

railsのapiモードを始めて触ったのでその時の備忘録として記事にしました。

既存のアプリケーションを変更APIモードにする

参考資料:https://railsguides.jp/api_app.html

1.config/application.rb のApplicationクラス定義の冒頭に、次を追加します。

config.api_only = true

2.app/controllers/application_controller.rb の以下のコードを置き換えます。

class ApplicationController < ActionController::Base
end

上を以下に変更します。

class ApplicationController < ActionController::API
end

Talend API Tester を使う

参考資料:https://techtechmedia.com/talend-api-tester/

getレスポンスの確認(index)

1.メソッド→GET
2.http://localhost:3000/mypages
(mypagesはコントローラ名を指定している)
3.[send]

レスポンスを確認

{
"data":[
{"id": 1, "name": "テスト1", "email": "test1@example.com", "created_at": "2021-07-28T08:06:46.168Z",…},
{"id": 2, "name": "ああああ", "email": "a@a", "created_at": "2021-08-05T02:30:55.160Z",…},
{"id": 3, "name": "b", "email": "b@b", "created_at": "2021-08-05T02:31:12.391Z",…},
{"id": 4, "name": "c", "email": "c@c", "created_at": "2021-08-05T02:31:23.230Z",…},
{"id": 5, "name": "テスト~", "email": "a@af", "created_at": "2021-08-05T06:48:52.005Z",…},
{"id": 6, "name": "テストだ", "email": "a@afga", "created_at": "2021-08-05T07:08:19.070Z",…}
]

ソースコード

  def index
    users = User.all
    render json: { data: users }
  end

postレスポンスの確認(create)

1.メソッドをpostに変更する
2.http://localhost:3000/mypages
3.[QUERY PARAMETERS]を選択→[Add query parameter]を選択(何度でも追加できる)
4.
nameのところに[user[name]]、valueのところに[テスト]
nameのところに[user[email]]、valueのところに[fafa@fafa]
nameのところに[user[password]]、valueのところに[111111]
5.[send]

レスポンスを確認

{
"id": 7,
"name": "テスト",
"email": "fafa@fafa",
"created_at": "2021-08-05T08:38:23.966Z",
"updated_at": "2021-08-05T08:38:23.966Z"
}

ソースコード

  def create
    user = User.new(user_params)
    if user.save
      render json: user, status: :created
    else
      render json: user.errors, status: :unprocessable_entity
    end
  end
private
  def user_params
    params.require(:user).permit(:name, :email, :password)
  end

postレスポンスの確認(update)

1.メソッドをputに変更する
2.http://localhost:3000/mypages/2
(/2でidを指定)
3.[QUERY PARAMETERS]を選択→[Add query parameter]を選択(何度でも追加できる)
nameのところに[user[name]]、valueのところに[aaaaaafafa]
4.[send]

レスポンス

{
"data":{
"name": "aaaaaafafa",
"email": "a@a",
"id": 2,
"created_at": "2021-08-05T02:30:55.160Z",
"updated_at": "2021-08-05T08:45:26.024Z"
}
}

ソースコード

  def update
    if @user.update(user_params)
      render json: { data: @user }
    else
      redirect_to edit_mypage_path(@user), notice: '更新できませんでした!'
    end
  end
private
  def user_params
    params.require(:user).permit(:name, :email, :password)
  end

デバッグ

「binding.pry」を使うことができるのパラメータの確認などができます。

感想

今回、railsのapiモードについて初めて触ったので備忘録として記事にしました。

触ってみると楽しいですね♪

コメント

タイトルとURLをコピーしました