Cómo hacer una API en Laravel de la mejor forma posible

Hacer una API en Laravel es sencillo, pero si no lo haces bien acabarás con un código poco extensible y testeable. Vamos a ver cuál es la mejor forma de hacer cada endpoint.

Cómo hacer una API en Laravel de la mejor forma posible

Hacer un endpoint en Laravel es cuestión de minutos. Creamos un nuevo controlador, hacemos algo con la entrada del endpoint y devolvemos un modelo sencillo que automáticamente pasa a ser una respuesta JSON válida.

🇬🇧 English post available here.

Esto puede servir para empezar, pero a la larga traerá muchos problemas. Problemas como que el código del controlador no es fácil de testear sin mockear parte de la infraestructura. Además, todo este código que hemos puesto en el controlador no es reutilizable. Si el día de mañana hay una nueva forma de lanzar ese caso de uso (por ejemplo, crear un usuario en caso de que sea el endpoint de registro) tendríamos que duplicar nuestro código lo cual, es una malísima idea.

Para evitar esto, y otros muchos problemas vamos a ver cómo debería de ser cada endpoint de nuestra API en Laravel y cómo podemos pasar de un endpoint "mal hecho" a otro bien estructurado sin romper nada.