概要
ajax, api のルーティングのグループを作成したが、通常の処理は、JSON形式で返るが、
エラー発生時(400, 404, 500, 503など)の際にHTMLが返ってしまう。
エラーの時にもJSON形式で応答して欲しいので、調べた結果をメモに残す。
例外処理のrenderメソッドで対応する
下記のように特定のURL(ajax,api)などへのリクエストに対してまとめて変更する。
app/Exceptions/handler.php
// レスポンスをJSON形式に変更
if ($request->is('ajax/*') || $request->is('api/*') || $request->ajax()) {
$status = 400;
if ($this->isHttpException($exception)) {
$status = $exception->getStatusCode();
}
return response()->json([
'status' => $status,
'errors' => $this->getMessage($status)
], $status);
}
以上