Skip to content

Repository files navigation

api-node-test

API REST de chistes y matematicas con Node.js, Postgres, TDD y Swagger (OpenAPI YAML).

Requisitos

  • Node.js 18+
  • Docker y Docker Compose (para Postgres y ejecucion dockerizada)

Configuracion local

  1. Instalar dependencias:
npm install
  1. Crear archivo de entorno:
cp .env.example .env
  1. 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
  1. (Opcional) Crear base de datos de tests:
docker exec -it jokes-db createdb jokesdb_test -U postgres
  1. Ejecutar la API en modo desarrollo:
npm run dev

La tabla jokes se crea automaticamente al iniciar el servidor.

Ejecucion de tests (TDD)

Asegurate de tener Postgres activo y las variables DATABASE_URL/DATABASE_URL_TEST en .env.

npm test

Docker

Levantar API y Postgres:

docker compose up --build

La API queda en http://localhost:3000.

Documentacion Swagger

El archivo openapi.yaml describe el API en formato OpenAPI 3.0.

Endpoints

Chistes

  • GET /jokes -> chiste aleatorio desde la DB.
  • GET /jokes/{source} -> chiste externo (chuck o dad, 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.

Matematicas

  • GET /math/lcm?numbers=1,2,3 -> minimo comun multiplo.
  • GET /math/next?number=7 -> numero + 1.

About

API REST en Node/Express desarrollada con TDD: contrato documentado en OpenAPI, persistencia en PostgreSQL y entorno con Docker Compose.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages