API REST desarrollada con Node.js y Express para gestionar información de Pokémon.
- Node.js 20+
- Express.js - Framework web
- PostgreSQL - Base de datos
- pg - Cliente PostgreSQL para Node.js
- CORS - Cross-Origin Resource Sharing
- Morgan - HTTP request logger
- express-validator - Validación de datos
# Instalar dependencias
npm install
# Copiar variables de entorno
cp .env.example .env
# Editar .env con tus configuraciones
nano .envEdita el archivo .env con tus configuraciones:
PORT=4000
DB_HOST=localhost
DB_PORT=5432
DB_NAME=pokemon_db
DB_USER=postgres
DB_PASSWORD=pokemon123
NODE_ENV=development# Modo desarrollo (con nodemon)
npm run dev
# Modo producción
npm startEl servidor estará disponible en: http://localhost:4000
- GET
/health- Verificar estado del servidor
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/pokemon |
Obtener todos los Pokémon |
| GET | /api/pokemon/:id |
Obtener un Pokémon por ID |
| POST | /api/pokemon |
Crear nuevo Pokémon |
| PUT | /api/pokemon/:id |
Actualizar Pokémon |
| DELETE | /api/pokemon/:id |
Eliminar Pokémon |
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/pokemon/tipo/:tipo |
Filtrar por tipo |
| GET | /api/pokemon/legendarios |
Solo legendarios |
| GET | /api/pokemon/search?nombre=pikachu |
Buscar por nombre |
curl http://localhost:4000/api/pokemoncurl -X POST http://localhost:4000/api/pokemon \
-H "Content-Type: application/json" \
-d '{
"numero_pokedex": 151,
"nombre": "Mew",
"tipo_primario": "Psíquico",
"descripcion": "Un Pokémon legendario muy raro",
"stats_hp": 100,
"stats_ataque": 100,
"stats_defensa": 100,
"stats_velocidad": 100,
"es_legendario": true,
"generacion": 1
}'curl -X PUT http://localhost:4000/api/pokemon/1 \
-H "Content-Type: application/json" \
-d '{
"numero_pokedex": 6,
"nombre": "Charizard Mejorado",
"tipo_primario": "Fuego",
"tipo_secundario": "Volador"
}'curl -X DELETE http://localhost:4000/api/pokemon/1# Construir imagen
docker build -t pokemon-backend .
# Ejecutar contenedor
docker run -p 4000:4000 --env-file .env pokemon-backendbackend/
├── src/
│ ├── config/
│ │ └── database.js # Configuración PostgreSQL
│ ├── controllers/
│ │ └── pokemonController.js
│ ├── models/
│ │ └── pokemonModel.js
│ ├── routes/
│ │ └── pokemonRoutes.js
│ └── server.js # Punto de entrada
├── .env.example
├── .gitignore
├── package.json
└── README.md
# Probar con curl
curl http://localhost:4000/health
# O usar Postman, Thunder Client, Insomnia, etc.MIT