【Laravel】JSONレスポンス
レスポンスって、いろいろ返せる✨
今回はJSONレスポンスを使う機会があったので、それについて書く
response()->json()
第一引数: JSON 化可能なオブジェクト
第二引数:ステータスコード(初期値200)
HTTPステータスコードを初期値から変更する際の参考
ex)認証に失敗した場合 401
JsonSerializable インタフェース
その他
認証を実装していて気になったところ
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