API REST para gestión de posts desarrollado con Express.js y MongoDB en memoria.
Este proyecto implementa un API CRUD completo para el modelo "Post" con los siguientes endpoints:
POST /api/posts
- Crear un nuevo postGET /api/posts
- Obtener todos los postsGET /api/posts/:id
- Obtener un post por IDPATCH /api/posts/:id
- Actualizar un postDELETE /api/posts/:id
- Eliminar un post
- Node.js 16+
- npm
-
Clonar el repositorio
git clone <url-del-repositorio> cd actividad-2-as
-
Instalar dependencias
npm install
-
Ejecutar el servidor
npm start
El servidor se ejecutará en http://localhost:8000
npm run dev
{
id: String, // Generado automáticamente
title: String, // Requerido, mínimo 6 caracteres
text: String, // Requerido, mínimo 6 caracteres
author: String, // Requerido
createdAt: Date, // Generado automáticamente
updatedAt: Date // Actualizado automáticamente
}
- GET
/api/health
- Descripción: Verificar estado del servidor
- Respuesta:
200 OK
- POST
/api/posts
- Body:
{ "title": "Título del post (mínimo 6 caracteres)", "text": "Contenido del post (mínimo 6 caracteres)", "author": "Nombre del autor" }
- Respuesta:
201 Created
con el post creado - Error:
400 Bad Request
si hay errores de validación
- GET
/api/posts
- Respuesta:
200 OK
con array de posts
- GET
/api/posts/:id
- Respuesta:
200 OK
con el post encontrado - Error:
404 Not Found
si el post no existe
- PATCH
/api/posts/:id
- Body (campos opcionales):
{ "title": "Nuevo título", "text": "Nuevo contenido", "author": "Nuevo autor" }
- Respuesta:
200 OK
con el post actualizado - Error:
404 Not Found
si el post no existe
- DELETE
/api/posts/:id
- Respuesta:
204 No Content
- Error:
404 Not Found
si el post no existe
Se incluye la colección Posts_API_CRUD.postman_collection.json
que contiene:
- ✅ Pruebas para todos los endpoints
- ✅ Casos de éxito y error
- ✅ Tests automáticos de validación
- ✅ Variables de entorno configuradas
- Abrir Postman
- Click en "Import"
- Seleccionar el archivo
Posts_API_CRUD.postman_collection.json
- La colección incluye una variable
base_url
configurada parahttp://localhost:8000
actividad-2-as/
├── config/
│ └── db.config.js # Configuración MongoDB en memoria
├── controllers/
│ └── postController.js # Lógica de negocio CRUD
├── models/
│ └── Post.js # Modelo Mongoose
├── routes/
│ └── posts.js # Rutas del API
├── index.js # Servidor Express principal
├── package.json # Dependencias y scripts
└── Posts_API_CRUD.postman_collection.json # Colección Postman
- express: Framework web para Node.js
- mongoose: ODM para MongoDB
- mongodb-memory-server: MongoDB en memoria para desarrollo
- cors: Middleware para habilitar CORS
- Backend: Node.js + Express.js
- Base de Datos: MongoDB (en memoria con MongoMemoryServer)
- ODM: Mongoose
- Validación: Mongoose Schema Validation
- Testing: Postman Collection
- ✅ Modelo Post con validaciones completas
- ✅ API CRUD con todos los endpoints requeridos
- ✅ Manejo de errores apropiado (400, 404, 500)
- ✅ Códigos de estado HTTP correctos
- ✅ Validación de datos de entrada
- ✅ Base de datos en memoria (sin persistencia)
- ✅ Logging de peticiones
- ✅ Middleware de CORS habilitado
- ✅ Colección Postman con tests automáticos
- ✅ Documentación completa
- Crear post válido → 201 Created
- Crear post inválido → 400 Bad Request con errores de validación
- Listar todos los posts → 200 OK con array
- Obtener post existente → 200 OK con post
- Obtener post inexistente → 404 Not Found
- Actualizar post existente → 200 OK con post actualizado
- Actualizar post inexistente → 404 Not Found
- Eliminar post existente → 204 No Content
- Eliminar post inexistente → 404 Not Found
Desarrollado para la Actividad 2 del curso de Aplicaciones Servidor.