ハッピーメモメモ

私的備忘録

【Laravel】JSONレスポンス

レスポンスって、いろいろ返せる✨

今回はJSONレスポンスを使う機会があったので、それについて書く

 

response()->json()

        return response()->json([
            'name' => 'taro',
            'id' => 1
      ]);

storehouse-techhack.com

第一引数: JSON 化可能なオブジェクト

第二引数:ステータスコード(初期値200)

return response()->json([
'message' => 'Down for maintenance',
], 503);

www.utakata.work

 

HTTPステータスコードを初期値から変更する際の参考

ex)認証に失敗した場合 401

www5.plala.or.jp

 

JsonSerializable インタフェース

www.utakata.work


その他

qiita.com

 

認証を実装していて気になったところ

app/Http/Controllers/CookieAuthenticationController.php
 
<?php declare(strict_types=1);
namespace App\Http\Controllers;
use Exception;
use Illuminate\Contracts\Auth\Factory as Auth;
use Illuminate\Contracts\Auth\StatefulGuard;
use Illuminate\Http\JsonResponse; 追加!
use Illuminate\Http\Request;

final class CookieAuthenticationController extends Controller
{
    public function login(Request $request): JsonResponse これはなに?
    {
        $credentials = $request->validate([
            'email' => ['required', 'email'],
            'password' => 'required',
        ]);
        if ($this->getGuard()->attempt($credentials)) {
            $request->session()->regenerate();
            return new JsonResponse(['message' => 'ログインしました']);
        }
        throw new Exception('ログインに失敗しました。再度お試しください');
    }
}

Laravel Sanctum でSPA(クッキー)認証する - Qiita

 

こういう書き方もあるんだなあ

すこし参考

Laravel5 : FormRequestバリデーション結果をjson APIで返す | luftgarden