Desarrollo de API RESTful con Laravel: Buenas Prácticas y Seguridad
Clase 28 de 30 • Curso de Estándares y Buenas Prácticas para API REST con Laravel
Al trabajar en un API, es crucial mantener las convenciones REST, ya que esto nos garantizará coherencia. Además, al aprovechar las características de Laravel, logramos construir una base sólida que resulta en un sistema avanzado y robusto.
El objetivo del curso fue proporcionarte las habilidades necesarias para crear una arquitectura profesional que te permita acceder a los recursos a través de URLs únicas. Esto implica trabajar con entidades individuales, código aislado y garantizar la accesibilidad sin comprometer la seguridad.
Métodos HTTP para definir las operaciones y la intención del usuario como un verbo: GET (obtener), POST (crear), PUT (actualizar) y DELETE (eliminar), esto forma parte del estándar. Debemos trabajar con una representación estándar como JSON junto al estado HTTP correcto, en algunos casos 200 (OK), 201 (Created), 204 (No content), 404 (Not Found) que ayudará a transmitir la información correcta y detallada.
Repaso de las ventajas de un API
Integración de sistemas: Realmente facilitan la integración de sistemas web con aplicaciones móviles, la idea es que se conecten entre sí y compartan datos de manera segura y controlada. Esto es esencial en un entorno tecnológico profesional, hoy en día todo es web con una aplicación móvil como cliente.
Exposición de datos: La idea es exponer a la información de una manera controlada a terceros (el caso más común es aplicaciónes móviles), pero también pueden ser socios comerciales o programadores, teniendo así un abanico de oportunidades para la creación de aplicaciones complementarias, integraciones personalizadas o sistemas basados en datos.
Escalabilidad: Las APIs facilitan la escalabilidad al permitir que las aplicaciones se logren expandir de manera eficiente. Nuestro objetivo es ofrecer una interfaz bien definida y documentada para que todos se conecten y funcionen bien de manera coordinada.
Puntos claves del curso
Planificación de la API
Esto nos permite definir claramente los recursos, endpoints y métodos que se utilizarán en nuestra aplicación, lo que resulta en una API bien organizada y fácil de entender porque nuestro enfoque será siempre el poder brindar un buen mantenimiento. Esto incluye lo fundamental como la consistencia en los endpoints para que los programadores puedan utilizarla de manera efectiva, correcta y puedan predecir su uso gracias a la buena intuición y uso de estándar.
Recursos anidados
Estos nos permiten representar a las relaciones complejas entre las diferentes entidades en nuestras APIs, lo cual es especialmente útil en situaciones donde tenemos la configuración uno a uno, uno a muchos y todos los tipos conocidos.
Laravel Telescope
Necesitamos una herramienta de depuración y optimización para nuestras APIs, esta nos permite monitorear y mejorar el rendimiento del sistema.
Validación de datos
Tarea esencial para garantizar que los datos enviados cumplan con los requisitos y restricciones esperadas.
Sistema de autorización mediante tokens
Así protegemos a nuestras APIs y restringimos el acceso a usuarios autenticados y correctamente autorizados. Para ello usamos a Laravel Sanctum, que es un proyecto profesional que nos brinda un mecanismo de autenticación sencillo y seguro para nuestras APIs.
Políticas de acceso
Así definimos diferentes reglas y permisos específicos para controlar el acceso a los diferentes recursos y acciones, es una capa importante de seguridad.
Testing
Trabajo esencial y fundamental que nos ayuda a asegurar que nuestras APIs y código en general funcionen correctamente, cumpliendo con los requisitos y proporcionando las respuestas esperadas.
Metodología TDD
Tenemos una clase con este tema, lo explicamos porque nos permite desarrollar nuestro código de manera iterativa, paso a paso y probando cada funcionalidad en unidades aisladas, lo que mejora la calidad y la confiabilidad.
Versionado de la API
Aquí un tema clave, esto nos permite evolucionar y realizar cambios en nuestras APIs sin afectar a los clientes existentes, asegurando la compatibilidad y permitiendo la adopción de nuevas características de forma gradual.
Cada item mencionado forma parte de lo que conocemos como buena práctica debido a que seguimos el estándar correcto.