Iosvany Alvarez
Posted on September 9, 2021
Cuando creamos una API en Laravel queremos que nuestra aplicación solo sea accedida mediante peticiones HTTP con formato JSON.
Una de las tantas vias que existe es el manejo de excepciones mediante el fichero Handler de nuestro proyecto de Laravel.Tiene un método register(), donde cambiaremos par de lineas de como viene por default cuando se crea la aplicación laravel.
Pero esta vía no creo que sea la más completa para tratar todos los posibles errores o excepciones, pero funciona.
Ahora le quiero mostrar otra opción y es mediante la creación de un middleware que nos va a evualar las peticiones HTTP,pero lo configuraremos de manera global para que todas las peticiones que se realicen hacia nuestra API cumplan con los requisistos establecidos.
En la imagen de abajo se observa el código del middleware y la configuración que he usado para hacerlo de manera global.
class JsonMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if (!$request->wantsJson())
{
return response()->json([
'success'=> 'false',
'message' => 'Do not have authorization'
], 404);
}
return $next($request);
}
}
Aqui vamos analizar que las peticiones que se hagan, sino vienen en formato JSON devolveran una respuesta. Para eso nos apoyamos en el metodo wantsJson que devuelve un valor booleano si el request no viene en formato requerido.
Aquí las imagenes de los resultados tanto de un navegador como del cliente HTTP Postman, de las peticiones hechas después de haber configurado nuestro middleware de manera global. Las mismas no cumplen con los requisitos y nuestra API retorna una respuesta con el error.
Posted on September 9, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 12, 2024
January 21, 2024