Tu objetivo es construir una API utilizando FastAPI que permita realizar operaciones CRUD (crear, leer, actualizar y eliminar) en una lista de usuarios.
- Debes utilizar FastAPI y Python 3.x.
- Crea una lista de usuarios en memoria utilizando una lista de diccionarios.
- La estructura de un usuario debe contener los siguientes campos:
- id (entero): identificador único del usuario.
- nombre (cadena): nombre del usuario.
- edad (entero): edad del usuario.
- La API debe ser capaz de realizar las siguientes operaciones:
- Obtener todos los usuarios.
- Obtener un usuario por su ID.
- Crear un nuevo usuario.
- Actualizar un usuario existente.
- Eliminar un usuario existente.
- Debes manejar los casos de error adecuadamente, por ejemplo, si se intenta obtener un usuario que no existe.
- Asegúrate de validar los datos de entrada antes de crear o actualizar un usuario:
- El nombre debe ser una cadena no vacía.
- La edad debe ser un entero positivo.
- Agregar pruebas unitarias utilizando la biblioteca pytest.
- La estructura de un usuario debe contener los siguientes campos:
Si deseas agregar más desafíos a la prueba técnica, puedes considerar los siguientes puntos:
- Agregar paginación a la ruta que obtiene todos los usuarios, permitiendo especificar la cantidad de usuarios a devolver y el número de página.
- Implementar autenticación y autorización utilizando tokens de acceso (puedes utilizar bibliotecas como PyJWT).
- Incluir un Dockerfile que permita la construcción de la API en un contendor. En caso de realizar esta tarea se ha de validar que el contenedor se genera correctamente y se puede ejecutar la API.
* Crea un proyecto de Python utilizando el entorno y las herramientas que prefieras.
* Usa una arquitectura orientada a dominio para la estructuración del proyecto (Domain Driven Development)
* Usa la codificación guiada por pruebas (TDD)
* Implementa la API utilizando FastAPI y asegúrate de cumplir con los requisitos mencionados anteriormente.
* Prueba tu API utilizando herramientas como curl, Postman o httpie para asegurarte de que todas las operaciones funcionen correctamente.
* Si lo deseas, puedes incluir una breve documentación en forma de comentarios o un archivo README.md explicando cómo usar tu API.
* Crea un entorno virtual para la API que nos permita instalar los requirements necesarios para el correcto funcionamiento