El challenge esta echo en NestJS mostrando asi otra manera de hacerlo con otro lenguaje y Framework
El desafío consiste en crear una API REST utilizando Django y Django REST Framework para gestionar información de países obtenida desde un API externo.
- Ejecutar automáticamente cada 1 hora.
- Consumir el endpoint público: https://restcountries.com/v3.1/all?fields=name,flags,capital,population,continents,timezones,area,latlng.
- Guardar los datos en una tabla relacional
countries
. - Validar los datos antes de almacenarlos.
- Manejar errores si el API no está disponible.
- Evitar la duplicación de datos.
- Manejo de concurrencia para evitar ejecuciones simultáneas (opcional).
- Listar datos almacenados en la base de datos mediante el método GET.
- Paginación habilitada (sin autenticación).
- Opciones de filtrado o consulta por ID (opcional).
- Optimización para grandes volúmenes de datos (opcional).
- Aplicación dockerizada.
- Base de datos relacional PostgreSQL.
- Dependencia externa única: API de
restcountries.com
.
- Descargar e instalar Docker (si no lo tienes instalado).
- Asegurarse de que los puertos 5432, y 3000 estén libres.
-
Clonar el repositorio:
git clone <URL_DEL_REPOSITORIO> cd <NOMBRE_DEL_REPOSITORIO>
-
Construir y levantar los contenedores:
docker compose up -d --build
-
Esperar a que Docker indique que todos los contenedores están activos.
-
El servicio en segundo plano llenará la base de datos con datos en un intervalo de una hora.
-
Verificar el endpoint REST accediendo a:
http://localhost:3000/country
- Los datos estarán paginados en grupos de 10 registros.
- El comando
docker compose up -d --build
creará todos los contenedores, volúmenes y redes necesarios:- Servicio de PostgreSQL.
- NestJS.
- La base de datos se inicializará automáticamente y las migraciones necesarias se aplicarán al iniciar.
¡Disfruta del desarrollo y la prueba de este proyecto!