CRUD de Recursos con Django REST Framework

Clase 8 de 21Curso de Django Rest Framework

Resumen

La clave está en entender cómo manejar distintos métodos HTTP en una vista de detalle. A continuación, te explicamos paso a paso cómo implementar estas funcionalidades y cómo integrarlas correctamente en tu API.

¿Cómo implementamos la eliminación y modificación de recursos en Django?

Para manejar la eliminación y modificación de un recurso en Django, necesitamos trabajar dentro de la misma vista que gestiona los detalles del recurso, como la vista detailPage. No crearemos nuevas URLs, ya que la lógica se mantendrá utilizando la URL de detalle del recurso.

Para la modificación, se usa el método PUT mientras que para la eliminación usamos el método DELETE. Ambos interactúan con el mismo paciente o recurso, aprovechando la lógica existente de la URL y el modelo correspondiente.

¿Cómo definimos los métodos HTTP en la vista?

En el caso de la vista de detalle, ya tenemos el método GET implementado para listar la información del recurso. Para añadir la modificación y eliminación, simplemente definimos los métodos PUT y DELETE dentro de la misma vista:

  • Modificación (PUT): Este método se encargará de recibir los datos nuevos y actualizar el recurso en la base de datos.
  • Eliminación (DELETE): Este método eliminará el recurso de la base de datos y responderá con un código 204 No Content si la operación fue exitosa.

¿Cómo manejamos la validación de los datos?

Cuando se realiza una modificación con PUT, es fundamental validar los datos que se reciben. Para esto, usamos el serializador de DRF, que nos permite inicializar el recurso con los datos actuales y luego pasarle los nuevos datos que el usuario ha enviado. La función is_valid() valida que los datos sean correctos antes de realizar la modificación. Si los datos no son válidos, se lanza una excepción para gestionar los errores.

¿Cómo se realiza la operación en la base de datos?

Una vez que la validación es exitosa, usamos el método save() del serializador para aplicar los cambios en la base de datos. Este método se encarga de actualizar el recurso usando el modelo de Django, ya que el serializador está basado en un ModelSerializer.

Para la eliminación, simplemente usamos el método delete() del modelo de Django. Al finalizar, respondemos con un estado de 204 No Content para confirmar que el recurso ha sido eliminado correctamente.

¿Cómo probamos los cambios en el navegador?

Una vez implementadas las funciones de PUT y DELETE, podemos probarlas desde el navegador o una herramienta como Postman. Al modificar un recurso, por ejemplo, cambiando el nombre de “John” a “Juan”, veremos que el recurso se actualiza en la base de datos. Si intentamos eliminar el recurso y recargamos la página, obtendremos un error 404 Not Found, lo que indica que el recurso ya no existe.