Controlador

Ejecutar la migración

Debemos de crear la base de datos y poderla cargar

métodos de get

Para ello escribimos el código de index y show con las respectivas rutas

1
2
http://localhost:8000/api/books => obtener todos los libros
http://localhost:8000/api/books/1 => obtener el libro de id 1

Como lo que nos retorna es un Json, podemos instalar algún plugin para verlo de forma mas legible en el navegador, por ejemplo jsonview

metodos PATCH DELETE y POST

Ahora queremos probar estas otras rutas Para ello debemos de tener una herramienta que nos permita realizar llamadas de este tipo, con el navegador no podemos y estamos haciendo un api, no la parte de uso, sino de servicio Podemos instalar postman

1
2
3
sudo apt install snapd
sudo apt update
sudo snap install postman
*Podemos probar una solicitud por post y hacer que el método store me retorne un texto, lo mismo con patch y con delete y ver qué es

post

Vemos que con el post, en la parte del body del mensaje hay que aportar algún valor Para ello vamos al body y usamo el form-data para pasar valores

Pasar parámetros para el post

Escribmos el código del método store añadiendo un nuevo libro

Podemos ver qué ocurre si ponemos otro parámetro o no pasamos ningún libro

Para poder ver los errores debemos habilitar los hedear para en formato json aceptar los errores

Añadir la opción de ver los errores en el navegador

Podemos establecer en el servidor el control del error indicando lo que queramos que se muestre si no aparece el error

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
    public function store(Request $request)
    {
        $request->validate([
            'titulo'=>['required']
        ]);

        $book = new Book();
        $book->titulo=$request->input('titulo');
        $book->save();
        return $book;
        //
    }

PATH

La actualización es muy similar al storage, con la diferencia que solo queremos actualizar, no agregar En el postman, para pasar los nuevos datos usamos

modo de pasar datos al método patch

1
2
3
4
5
6
7
8
public function update(Request $request, Book $book){
        $request->validate([
                    'titulo'=>['required']
        ]);
        $book->titulo=$request->input('titulo');
        $book->update();
        return $book;
    }

DELETE

En este caso el método delete es muy sencillo. Podemos retornar un mensaje

1
2
3
4
5
public function destroy(Book $book)
{
$book->delete();
return "Se ha borrado ".$book->titulo;
}