Desarrollo de APIs con Pruebas y Refactorización
Clase 29 de 30 • Curso de Estándares y Buenas Prácticas para API REST con Laravel
Contenido del curso
- 8

Planificación y Definición de Rutas en una API con Laravel
06:08 - 9

Gestión de Recursos y Colecciones en APIs Laravel
12:59 - 10

Configuración de Recursos Multinivel en Visual Studio Code
11:48 - 11

Optimización de Consultas en Laravel con Telescope
10:55 - 12

CRUD de Recetas con Laravel y Symfony en Visual Studio Code
16:23 - 13

Validación de Datos en Aplicaciones Web con Laravel
11:24 Planificación y mantenimiento
- 14

Autenticación vs. autorización
03:19 - 15

Autenticación y Generación de Tokens en Laravel
09:28 - 16

Creación de Rutas y Controladores para Iniciar Sesión en API
12:32 - 17

Corrección de bugs de seguridad en aplicaciones web
08:02 - 18

Implementación de Políticas de Acceso en Laravel
07:27 - 19

Subida y Validación de Imágenes en Laravel con Visual Studio Code
07:56 - 20

¿Qué es la autenticación?
03:55 Funciones de seguridad
- 21

Automatización de Pruebas en Laravel con phpArtisan Test
13:49 - 22

Testing de Módulos Administrativos en Visual Studio Code
06:42 - 23

Pruebas Automatizadas para el Módulo de Recetas en PHP
08:19 - 24

Pruebas de Creación de Datos en Aplicaciones Web
07:37 - 25

Configuración y Pruebas de Actualización de Recetas en Visual Studio Code
06:10 API Testing
¿Cómo aplicar sistemas de rutas y versiones en tus proyectos?
Cuando nos embarcamos en el desarrollo de aplicaciones, uno de los aspectos fundamentales es el diseño de nuestros sistemas de rutas. Estos nos permiten definir qué queremos entregar y qué necesitamos de nuestra aplicación. Este concepto es el primer engranaje de una máquina mucho más compleja que, bien desarrollada, asegura que nuestro código pueda seguir funcionando sin problemas en distintas versiones.
¿Qué es un sistema de versiones?
El sistema de versiones permite mantener el código estable para diferentes usuarios al tiempo que se realizan actualizaciones. Separar la lógica del sistema en carpetas específicas permite que, si un usuario no desea actualizar la aplicación, esta siga funcionando sin inconvenientes. Este enfoque se puede aplicar tanto en validaciones como en el sistema de recursos, logrando controladores más limpios y enfocados en resolver problemas específicos de las solicitudes.
Ejemplo de separación de lógica en rutas
Supongamos que tenemos una ruta que regresa una consulta. La lógica de qué es exactamente lo que retorna se aísla en un conjunto de campos específicos. Esto no solo mantiene el código ordenado, sino que también es más fácil de mantener y escalar.
¿Por qué es crucial el testing en el desarrollo profesional?
El desarrollo profesional de software siempre debe estar respaldado por pruebas para asegurar que el código funciona correctamente y se comporta de manera esperada. Aquí es donde entra en juego el TDD (Test-Driven Development), una metodología que nos enseña a escribir primero las pruebas antes de implementar la funcionalidad.
¿Cómo aplicar TDD en tus proyectos?
- Escribir las pruebas: Antes de comenzar con la implementación, se deben escribir las pruebas que definirán el comportamiento esperado del código.
- Obtener respuestas en rojo: Al correr las pruebas, verás respuestas en rojo, indicando que el código aún no cumple con los requisitos planteados.
- Implementar el código: Ahora, escribe el código necesario para que las pruebas pasen.
- Refactorizar: Una vez que todas las pruebas pasen (respuestas en verde), puedes refactorizar o mejorar el código manteniendo la funcionalidad.
Ejemplo de cambio de rutas
Podrías tener una imagen con una ruta relativa (por ejemplo, /carpeta/archivo.png). Puedes transformarla en una ruta absoluta usando una función que genere el formato http://.../carpeta/archivo.png. Este proceso implica refactorizar el código y debe hacerse sin romper la funcionalidad existente (pruebas verdes).
¿Qué puedes lograr con un sistema de API?
Al adoptar las prácticas de manejo de rutas, versiones, y testing, puedes crear un sistema de API que:
- Sea flexible: Capaz de adaptarse a nuevas necesidades sin reescribir desde cero.
- Escalable: Maneje un aumento en la carga o en las funcionalidades sin problemas.
- Mantenible: Permite realizar cambios y actualizaciones sin afectar la estabilidad del sistema.
Con estas herramientas, podrás construir aplicaciones robustas que cumplen con los estándares profesionales. Te animo a aplicar estos conocimientos en tus próximos proyectos para elevar la calidad de tu desarrollo.
Finalmente, comparte tus logros y aprendizajes en redes sociales una vez completes este curso. ¿Qué nuevas prácticas implementarás en tu código? ¡Comparte tu experiencia y sigue aprendiendo!