[laravel]ApiのエラーをhtmlからJSONにする

未分類


初期でのエラーの戻りですが、明確に記載が無い場所はhtmlでエラーが出力されてしまいます。

基本的なシステムのエラーをJSONにする修正は

「app\Exception\Handler.php」

認証エラー

404エラー

バリデーションの個所はApiResponceを作り継承する形にする。

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Response;

abstract class ApiRequest extends FormRequest
{
    /**
     * Handle a failed validation attempt.
     *
     * @param  Validator  $validator
     * @return void
     *
     * @throws HttpResponseException
     */
    protected function failedValidation(Validator $validator)
    {
        $data = [
            'message' => __('The given data was invalid.'),
            'errors' => $validator->errors()->toArray(),
        ];

        throw new HttpResponseException(response()->json($data, Response::HTTP_UNPROCESSABLE_ENTITY));
    }
}