LaravelのDingo apiはどのようにCustom ExceptionHandler
背景最近Dingo api処理インタフェースを使用した場合、laravel自体のappExceptionsHandlerで異常をキャプチャできないことが判明した. 後で調べたところ、Dingo apiがapiリクエストの異常処理を引き継いでいた.エラーをカスタマイズできずに戻ってくるので、頭が痛いです. 最後にdingoのissuesで対処法を見つけた.
方法カスタム例外処理を作成 サービス容器を1つ作成 config/appにサービス容器を追加する.php中 締めくくりissuesリンク参照:https://github.com/dingo/api/...@shanginnが提供するメソッドには、インタフェース戻り500が存在し、データ戻りはありません.
方法
Dingo\Api\Exception\Handler, handle
app/Exceptions/ApiHandler.php
json(['message' => 'Unauthorized', 'status_code' => 401], 401);
}
return parent::handle($exception);
}
}
app/Providers/DingoServiceProvider.php
app->singleton('api.exception', function ($app) {
return new ExceptionHandler($app['Illuminate\Contracts\Debug\ExceptionHandler'], $this->config('errorFormat'), $this->config('debug'));
});
}
}
...
'providers' => [
...
App\Providers\DingoServiceProvider::class,
...
];