Tutorial Custom Laravel Error Handler menggunakan Json Response Biar Terlihat rapi, karena Laravel Tidak Menyediakan Untuk Pengaturan Default, maka kita harus mengubahnya dan mengkonversi response ke Json. Berikut beberapa Handler yang biasanya saya custom :
Sekarang edit file App/Exceptions/Handler.php
dan tambahkan di method :
public function register() { // Area ini yang akan kita buat Custom handler }
Lalu tambahkan kode :
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; ... $this->renderable(function (MethodNotAllowedHttpException $e) { return response()->json(['error' => 'Method Not Allowed', 'success' => false, 'message' => $e->getMessage()], SymfonyResponse::HTTP_METHOD_NOT_ALLOWED); });
Code diatas akan mengubah Format error ketika anda mau membuat Response Api berupa json
dengan error MethodNotAllowedHttpException
Sekarang edit file App/Exceptions/Handler.php
dan tambahkan di method :
public function register() { // Area ini yang akan kita buat Custom handler }
Lalu tambahkan kode :
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; ... $this->renderable(function (NotFoundHttpException $e) { return response()->json(['error' => 'Http NotFound', 'success' => false, 'message' => $e->getMessage()], SymfonyResponse::HTTP_NOT_FOUND); });
Code diatas akan mengubah Format error ketika anda mau membuat Response Api berupa json
dengan Error NotFoundHttpException
Sekarang edit file App/Exceptions/Handler.php
dan tambahkan di method :
public function register() { // Area ini yang akan kita buat Custom handler }
Lalu tambahkan kode :
use BadMethodCallException; ... $this->renderable(function (BadMethodCallException $e) { return response()->json(['error' => 'Http NotFound', 'success' => false, 'message' => $e->getMessage()], 403); });
Code diatas akan mengubah Format error ketika anda mau membuat Response Api berupa json
dengan Error BadMethodCallException
Sekarang edit file App/Exceptions/Handler.php
dan tambahkan di method :
public function register() { // Area ini yang akan kita buat Custom handler }
Lalu tambahkan kode :
// Jika anda menggunakan Spatie Permissions use Spatie\Permission\Exceptions\UnauthorizedException; ... $this->renderable(function (UnauthorizedException $e) { return response()->json(['error' => 'You do not have the required authorization.', 'success' => false, 'message' => $e->getMessage()], 403); });
Code diatas akan mengubah Format error ketika anda mau membuat Response Api berupa json
dengan Error UnauthorizedException
Untuk Menggabungkan Semua Error Handler, bisa menambahkan seperti berikut :
use BadMethodCallException; use Spatie\Permission\Exceptions\UnauthorizedException; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; ... public function register() { $this->renderable(function (MethodNotAllowedHttpException $e) { return response()->json(['error' => 'Method Not Allowed', 'success' => false, 'message' => $e->getMessage()], SymfonyResponse::HTTP_METHOD_NOT_ALLOWED); }); $this->renderable(function (NotFoundHttpException $e) { return response()->json(['error' => 'Http NotFound', 'success' => false, 'message' => $e->getMessage()], SymfonyResponse::HTTP_NOT_FOUND); }); $this->renderable(function (UnauthorizedException $e) { return response()->json(['error' => 'You do not have the required authorization.', 'success' => false, 'message' => $e->getMessage()], 403); }); $this->renderable(function (BadMethodCallException $e) { return response()->json(['error' => 'Bad Method Call Exception', 'success' => false, 'message' => $e->getMessage()], 403); }); }
Demikian Tutorial tentang Laravel Custom Error Handler Json Response, semoga bermanfaat. Happy Coding...