success
después de guardar y editar una película. La notificación se tendrá que añadir antes de realizar la redirección. Le podéis poner los textos: "La película se ha guardado/modificado correctamente".resources/views/layouts/master.blade.php
, para indicar que se muestren las notificaciones justo antes del contenido principal:routes/web.php
y posteriormente modificar el controlador CatalogController
para añadir los tres nuevos métodos. Estos tres métodos son similares al método que ya habíamos implementado antes para editar los datos de una película. En el caso de putRent
y putReturn
únicamente modificaremos el campo rented
asignándole el valor true y false respectivamente, y una vez guardado crearemos la notificación y realizaremos una redirección a la pantalla con la vista detalle de la película. En el método deleteMovie
también obtendremos el registro de la película pero tendremos que llamar al método delete()
de la misma, una vez hecho esto añadiremos la notificación y realizaremos una redirección al listado general de películas.resources/views/catalog/show.blade.php
). Dado que la acciones se tienen que realizar usando peticiones HTTP tipo PUT y DELETE no podemos poner un enlace normal (ya que este sería tipo GET). Para solucionarlo tenemos que crear un formulario alrededor del botón y asignar al formulario el método correspondiente, por ejemplo:/rent
y /return
. Todas las rutas estarán protegidas con contraseña (usando autenticación HTTP básica sin estado) a excepción de index
y show
que serán públicas. Tenéis que comprobar que las rutas y filtros sean los correctos usando el método de Artisan php artisan route:list
.Pista 1: Recuerda que las rutas de una API las tienes que definir dentro del fichero de rutasroutes/api.php
y que al incluirlas dentro de este fichero automáticamente se añade el prefijoapi
, por lo que en este caso tendrás que indicar la URL solamente a partir dev1
.Pista 2: El middleware "auth.basic.once" de autenticación básica sin estado no viene definido con Laravel por defecto. Para añadirlo tenéis que seguir las instrucciones indicadas en el apartado "Autenticación HTTP básica sin estado" de la teoría.Pista 3: Para poder aplicar un filtro solamente a algunos de los métodos del controlador tendréis que separar la declaración de las rutas. Para esto podéis utilizar el tercer parámetro con las opcionesonly
yexcept
.
APICatalogController
usando el comando de Artisan que genera el controlador de recurso junto con todos los métodos RESTful. Las acciones y contenidos de los métodos serán muy similares a los de CatalogController
, pero teniendo en cuenta que no tendremos que devolver una vista sino directamente el contenido de la consulta en formato JSON. Por ejemplo, el método que devuelve el listado de todas las películas sería simplemente:cURL
para comprobar que todas las rutas que has creado funcionan correctamente. Recuerda que puedes especificar el método HTTP a utilizar mediante el parámetro -X
, las cabeceras de la petición con el parámetro -H
y el contenido a enviar con -d
, por ejemplo:Aviso: hemos de tener cuidado con el método de actualizar los datos de una película ya que los campos que no se envíen se asignarán como vacíos. Para solucionar esto podemos actualizar solamente los campos que contengan algún valor o enviar siempre todos los campos.