Este documento describe los endpoints de API disponibles en la aplicación Scatly, sus parámetros, respuestas y ejemplos de uso.
GET /api/projects
Respuesta exitosa (200 OK)
{
"success": true,
"timestamp": "2023-11-15T12:34:56.789Z",
"count": 5,
"projects": [
{
"id": 1,
"nombre": "Proyecto 1",
"descripcion": "Descripción del proyecto 1",
"created_at": "2023-11-15T10:30:00.000Z",
"updated_at": "2023-11-15T10:30:00.000Z"
},
// ... más proyectos
]
}Respuesta de error (500 Internal Server Error)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Error al obtener proyectos de la base de datos",
"details": "Mensaje de error específico"
}GET /api/projects/{id}
Parámetros de ruta
id(número): ID del proyecto a obtener
Respuesta exitosa (200 OK)
{
"success": true,
"timestamp": "2023-11-15T12:34:56.789Z",
"project": {
"id": 1,
"nombre": "Proyecto 1",
"descripcion": "Descripción del proyecto 1",
"created_at": "2023-11-15T10:30:00.000Z",
"updated_at": "2023-11-15T10:30:00.000Z"
}
}Respuesta de error (404 Not Found)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Proyecto no encontrado"
}Respuesta de error (500 Internal Server Error)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Error al obtener el proyecto",
"details": "Mensaje de error específico"
}POST /api/projects
Cuerpo de la solicitud
{
"nombre": "Nuevo Proyecto",
"descripcion": "Descripción del nuevo proyecto"
}Respuesta exitosa (201 Created)
{
"success": true,
"timestamp": "2023-11-15T12:34:56.789Z",
"message": "Proyecto creado exitosamente",
"project": {
"id": 6,
"nombre": "Nuevo Proyecto",
"descripcion": "Descripción del nuevo proyecto",
"created_at": "2023-11-15T12:34:56.789Z",
"updated_at": "2023-11-15T12:34:56.789Z"
}
}Respuesta de error (500 Internal Server Error)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Error al crear el proyecto",
"details": "Mensaje de error específico"
}PUT /api/projects/{id}
Parámetros de ruta
id(número): ID del proyecto a actualizar
Cuerpo de la solicitud
{
"nombre": "Proyecto Actualizado",
"descripcion": "Descripción actualizada del proyecto"
}Respuesta exitosa (200 OK)
{
"success": true,
"timestamp": "2023-11-15T12:34:56.789Z",
"message": "Proyecto actualizado exitosamente",
"project": {
"id": 1,
"nombre": "Proyecto Actualizado",
"descripcion": "Descripción actualizada del proyecto",
"created_at": "2023-11-15T10:30:00.000Z",
"updated_at": "2023-11-15T12:34:56.789Z"
}
}Respuesta de error (404 Not Found)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Proyecto no encontrado"
}Respuesta de error (500 Internal Server Error)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Error al actualizar el proyecto",
"details": "Mensaje de error específico"
}DELETE /api/projects/{id}
Parámetros de ruta
id(número): ID del proyecto a eliminar
Respuesta exitosa (200 OK)
{
"success": true,
"timestamp": "2023-11-15T12:34:56.789Z",
"message": "Proyecto eliminado correctamente",
"id": 1
}Respuesta de error (404 Not Found)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Proyecto no encontrado"
}Respuesta de error (500 Internal Server Error)
{
"success": false,
"timestamp": "2023-11-15T12:34:56.789Z",
"error": "Error al eliminar el proyecto",
"details": "Mensaje de error específico"
}Todas las respuestas de la API siguen un formato consistente que incluye:
success: Booleano que indica si la operación fue exitosatimestamp: Marca de tiempo ISO 8601 que indica cuándo se procesó la solicitud- Datos específicos de la respuesta (proyectos, mensajes, etc.)
- Información de error cuando corresponda
Los errores se manejan de manera consistente en todos los endpoints:
- Errores 404 para recursos no encontrados
- Errores 500 para problemas del servidor
- Mensajes de error descriptivos
- Detalles adicionales cuando están disponibles
Todos los endpoints incluyen registro detallado para facilitar la depuración:
- Inicio de la solicitud
- Operaciones de base de datos
- Resultados exitosos
- Errores y excepciones
Obtener todos los proyectos
curl -X GET http://localhost:3000/api/projectsObtener un proyecto específico
curl -X GET http://localhost:3000/api/projects/1Crear un nuevo proyecto
curl -X POST http://localhost:3000/api/projects \
-H "Content-Type: application/json" \
-d '{"nombre":"Nuevo Proyecto","descripcion":"Descripción del nuevo proyecto"}'Actualizar un proyecto existente
curl -X PUT http://localhost:3000/api/projects/1 \
-H "Content-Type: application/json" \
-d '{"nombre":"Proyecto Actualizado","descripcion":"Descripción actualizada del proyecto"}'Eliminar un proyecto
curl -X DELETE http://localhost:3000/api/projects/1