Cuando trabajamos con sistemas o proyectos, es fundamental entender que estos pueden ser accedidos de diversas maneras. Específicamente, se puede hacer a través de un navegador web o mediante una API (Application Programming Interface) que permite a otros software o aplicaciones de terceros interactuar con el sistema.
La diferencia entre estos dos métodos es clara:
Vía web: A través del navegador, un usuario interactúa directamente con el sistema utilizando interfaces visuales familiares y amigables.
Vía API: Permite a otros programas acceder al sistema de forma programática, sin necesidad de interfaces visuales. Es ideal para intercambiar información entre aplicaciones de manera eficiente.
¿Cómo configurar rutas para una API?
En la implementación de APIs, las rutas juegan un papel crucial para determinar cómo se puede interactuar con los recursos del sistema. Normalmente, una API cuenta con los métodos CRUD (Create, Read, Update, Delete) para manipular estas rutas.
A continuación, se describe cómo acceder a las rutas de una API usando Laravel y PHP:
// Listar todas las rutas disponiblesphp artisan route:list
Métodos HTTP y sus usos
GET: Usado para obtener toda la colección de recursos o un recurso específico.
DELETE: Empleado para eliminar un recurso específico de la base de datos.
Eliminar un recurso a través de una API implica dos pasos principales: configurar la ruta adecuada y escribir el código necesario en el controlador para llevar a cabo esta acción.
Configuración en el Controlador
En el controlador, se precisa especificar qué acciones tomar cuando se recibe una solicitud DELETE. Supongamos que queremos eliminar un post:
publicfunctiondestroy($id){// Paso 1: Eliminar el post$post=Post::find($id);$post->delete();// Paso 2: Dar un feedbackreturnresponse()->json(['message'=>'Eliminado correctamente'],200);}
Probar la eliminación de recursos
Para probar que la eliminación funciona correctamente, herramientas como Postman son muy útiles. Se puede enviar una solicitud DELETE al recurso usando la URL adecuada:
Visualización actual: Usando el método GET antes de la eliminación.
Eliminación: Cambiando el método a DELETE y observando el cambio de estado.
Personalización del Feedback
A veces, no es necesario mostrar un mensaje después de eliminar un recurso. Es posible retornar un estado 204, indicando que la acción fue exitosa pero sin contenido adicional.
returnresponse()->json([],204);
Este tipo de respuestas son prácticas cuando se desea ejecutar una acción silenciosa pero eficiente.
Recursos y colecciones: optimización de respuesta
Tras realizar acciones en la API, es esencial optimizar la respuesta que recibe el cliente para asegurarse de que solo se recibe la información necesaria. En la primera versión de una API, puedes limitar la información a lo esencial: título, extracto y contenido.
Implementando estas prácticas, puedes crear un ciclo continuo en tu aplicación: te conectas a la API, ejecutas acciones y ofreces respuestas optimizadas. Todo esto es parte del ciclo común de una aplicación bien diseñada.
Con cada paso dado en este camino, te animamos a seguir aprendiendo y mejorando tus habilidades. ¡El mundo de las APIs está lleno de posibilidades!
Recomiendo darse una pasada por la documentación de Laravel sobre los códigos de respuesta, ya que hay muchas cosas que se pueden hacer con ellas 👀
.
https://laravel.com/docs/8.x/responses
Muy interesante el link de las respuestas en Laravel, definitivamente hay que leer mucho la documentación de Laravel.
gracias por la doc
En un comentario del video anterior un compañero compartió este link, el cual es muy interesante porque Laravel ya maneja los códigos HTTP, haciendo mas legible nuestro código.
Creo que ahi lo maneja con el framework de symphony oero es la misma idea
Gracias Edgar, este tipo de formato puede ser de gran ayuda cuando se inicia en el mundo de Backend porque el código de respuesta es mucho más legible para uno que programa como a las futuras personas que se encarguen de mantener el código.
Para el reto de eliminar un post yo lo hice de la siguiente manera.
$post->delete();returnresponse()->noContent();
Donde "noContent" es un método de "response" que aplica directamente un status code 204.
¿Cómo se haría primero para validar si el registor peude eliminarse?
O, ¿Si la base de datos, tuviese una restricción de eliminación en cascada, cómo se haría dicha validación, el mismo método delete egenra un mensaje?
Hola, ¿como podría hacer para que, cuando se quiera eliminar un registro, y ese registro no exista, no me devuelva la vista de error 404, si no que yo pueda configurar un objeto response en formato json??
Buenas, no se que ocurre pero si pongo un status code personalizado el cuerpo del mensaje no se muestra y si quito el status personalizado entonces si
Compañero conseguiste solucionar ese problema?? porque tengo el mismo inconveniente, no se como hacer que se muestre el json si envío el código
Como podría obtener el status error cuando consuma la api y no estoy autorizado autorizado. Por ejemplo ...(Throwable $e) { $e->getStatus } claro que esto no funciona pero como si podria obtener este status? espero se entienda. gracias ^^