Quantcast
Channel: Postmanタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 470

【Rails】ログイン結果をJSON形式で返す(初学者用)

$
0
0

はじめに

API通信って最初何やってるのかよくわかりませんでした。
今回は、同じ悩みを持つ人が少しでもイメージが持てるように、
UIはつくらずに、実行後のレスポンス結果をJSONで返す実装を紹介します。
題材はRails初学者が恐らく最初に学んだであろうサインアップ、ログイン。

コード

※ userテーブルのカラムはemail,password
※ アクセスURLはhttp://localhost:3000/api/v1/***とします。localhost:3000のままでもok

routes.rb
Rails.application.routes.drawdo# namespaceで /api/v1/の階層をつくるnamespace:api,format: :jsondonamespace:v1dopost:sign_up,to: 'users#sign_up'post:login,to: 'users#login'endendend
users_controller.rb
classApi::V1::UsersController<ApplicationController## クラス名を階層に合わせるdefsign_upuser=User.new(user_params)ifuser.saverenderstatus: "200",json: {result: user}# 保存成功時にユーザー情報をjson形式で返すelserenderstatus: "400",json: {result: "メールアドレスまたはパスワードが有効ではありません"}endenddefloginuser=User.find_by(email: params[:email])ifuser&&user.authenticate(params[:password])renderstatus: "200",json: {result: user}# ログイン成功時にユーザー情報をjson形式で返すelserenderstatus: "400",json: {result: "メールアドレスまたはパスワードが一致しません"}endendprivatedefuser_paramsparams.permit(:email,:password)endend

Postmanで試してみる

使ったことない人のために

インストール(https://www.postman.com/)したら画像の通りやってみてください。
設定できたら「Send」ボタンで実行!
スクリーンショット 2020-12-20 21.45.33.png
スクリーンショット 2020-12-20 21.47.01.png

サインアップ成功例

スクリーンショット 2020-12-20 21.34.48.png

ログイン成功例

スクリーンショット 2020-12-20 21.35.49.png

ログイン失敗例

スクリーンショット 2020-12-20 21.36.25.png

レスポンス内容を全部表示したくないとき

as_jsonを使うと簡単に制限できます。
参考URL https://qiita.com/tbaba/items/ea44025b056f708ab0b4

おわりに

知ってしまえば意外と簡単でした。でも初学者はこれを知るのに時間がかかるんです。。。
誰かの助けになれば幸いです。


Viewing all articles
Browse latest Browse all 470

Trending Articles