laravel8のAPIのエラー処理を書いてJSONで返す
何もしないと、普通にエラー画面のHTMLが出力されるので、APIの時はエラー処理を行う。
laravelのエラー処理は、app/Exceptions/Handler.phpに集約されているので、以下の追記だけで大丈夫
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  | 
						public function render($request, $exception) {     // APIの場合はエラー画面ではなく、JSONでエラーコードとメッセージを返す     if ( $request->is('api/*') ) {         if($this->isHttpException($exception)){             return response()->json([                 'error_code' => $exception->getStatusCode(),                 'errors' => $exception->getMessage()             ], $exception->getStatusCode());         }         // HTTPエラーじゃないけど、laravel的エラー。400(Bad Request)を返す         return response()->json([             'error_code' => 400,             'errors' => $exception->getMessage()         ], 400);     }            return parent::render($request, $exception); }  | 
					
エラー時には、こんな感じでJSONレスポンスが返ってくる。右から左に流す感じ
| 
					 1 2 3 4  | 
						{     "error_code": 405,     "errors": "The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE." }  |