Laravel - Laravel Api (manejo de errores)

 
Vista:
sin imagen de perfil

Laravel Api (manejo de errores)

Publicado por Murph (1 intervención) el 08/04/2023 20:01:48
Hola a todos.

Estoy empezando a desarrollar con Laravel para crear una Api simple y me falla una cosa que seguramente sea una chorrada. A ver si alguien puede echarme un cable.

Imagen una petición GET para obtener los datos de un "cliente" concreto, donde se envíe el id del cliente en la petición. En el controller he hecho esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public function show(Client $client)
    {
        try
        {
            $client = Client::findOrFail($client);
 
            $data = [
                "status" => "success",
                "message" => "Correct request",
                "data" => [
                    "client" => $client
                ]
            ];
 
            return response()->json($data, 200);
        }
 
        catch (ModelNotFoundException $e)
        {
            $data = [
                "status" => "error",
                "message" => "Invalid client id"
            ];
 
            return response()->json($data, 404);
        }
    }


¿Cuál es el problema? Que si el id de cliente existe en la base de datos está todo ok, no hay problema, se responde con los datos, pero mi problema es que no sé cómo hacer para que cuando se indique un id que no existe, la api pueda responder con un error code 404 y retorne lo que he puesto en el catch, que es un array con un status y mensaje.

Esto es lo que hace independientemente de lo que yo haga:

Captura-de-Pantalla-2023-04-08-a-las-18-57-18

Creo que eso ocurre porque el controlador recibe directamente el parámetro en la función y ahí ya comprueba que no existe. Me gustaría ser yo quién responde con un error personalizado y no con toda esa información.

¿Alguna idea?
Gracias.

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder