API REST de chistes y matematicas con Node.js, Postgres, TDD y Swagger (OpenAPI YAML).
- Node.js 18+
- Docker y Docker Compose (para Postgres y ejecucion dockerizada)
- Instalar dependencias:
npm install- Crear archivo de entorno:
cp .env.example .env- Levantar Postgres (opcion local con Docker):
docker run --name jokes-db -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=jokesdb -p 5432:5432 -d postgres:15-alpine- (Opcional) Crear base de datos de tests:
docker exec -it jokes-db createdb jokesdb_test -U postgres- Ejecutar la API en modo desarrollo:
npm run devLa tabla jokes se crea automaticamente al iniciar el servidor.
Asegurate de tener Postgres activo y las variables DATABASE_URL/DATABASE_URL_TEST en .env.
npm testLevantar API y Postgres:
docker compose up --buildLa API queda en http://localhost:3000.
El archivo openapi.yaml describe el API en formato OpenAPI 3.0.
GET /jokes-> chiste aleatorio desde la DB.GET /jokes/{source}-> chiste externo (chuckodad, sin importar mayusculas/minusculas).POST /jokes-> crea un chiste.PUT /jokes/{number}-> actualiza el chiste por id.DELETE /jokes/{number}-> elimina el chiste por id.
GET /math/lcm?numbers=1,2,3-> minimo comun multiplo.GET /math/next?number=7-> numero + 1.