Documentación de API

Endpoints disponibles para sistemas externos para realizar operaciones CRUD en noticias y usuarios

Información General

URL Base

https://tu-dominio.com

Formato de Respuesta

Todas las respuestas están en formato JSON. Los errores devuelven un objeto con la propiedad "error".

Seguridad

Las contraseñas se almacenan hasheadas con bcrypt. Nunca se devuelven contraseñas en las respuestas de la API.

Estructura de Datos

Objeto Noticia

{
"id": 1,
"title": "Título de la noticia",
"content": "Contenido completo...",
"date": "2024-01-20",
"impact_analysis": "Análisis del impacto y relevancia de la noticia en el contexto de las etiquetas asociadas...",
"sources": ["https://fuente1.com", "https://fuente2.com"],
"created_at": "2024-01-20T10:30:00Z",
"tags": [
 { "id": 1, "name": "Tecnología" },
 { "id": 2, "name": "Negocios" }
],
"queries": [
 {
   "id": 1,
   "user_id": 1,
   "query": "¿Cuál es el impacto principal?",
   "response": "El impacto principal es...",
   "created_at": "2024-01-21T12:00:00Z"
 }
]
}
📰Noticias
Endpoints para gestionar noticias
GET
/api/news

Obtener todas las noticias

Respuesta:
Array de objetos noticia con etiquetas y consultas (queries) asociadas
POST
/api/news

Crear una nueva noticia

Cuerpo de la Petición:
{ title, content, date, impact_analysis?, sources[]?, tagIds[]? }
Respuesta:
Objeto noticia creado
PUT
/api/news/{id}

Actualizar una noticia existente

Cuerpo de la Petición:
{ title?, content?, date?, impact_analysis?, sources[]?, tagIds[]? }
Respuesta:
Objeto noticia actualizado
DELETE
/api/news/{id}

Eliminar una noticia

Respuesta:
{ success: true }
POST
/api/news/{id}/query

Hacer una pregunta sobre una noticia específica usando IA

Cuerpo de la Petición:
{ userId, query }
Respuesta:
{ response: 'Respuesta de la IA...' }
👥Usuarios
Endpoints para gestionar usuarios
GET
/api/users

Obtener todos los usuarios

Respuesta:
Array de objetos usuario con etiquetas asociadas (sin contraseñas)
GET
/api/users/{id}

Obtener un usuario específico

Respuesta:
Objeto usuario con etiquetas asociadas (sin contraseña)
POST
/api/users

Crear un nuevo usuario

Cuerpo de la Petición:
{ name, email, phone?, password, tagIds[]? }
Respuesta:
Objeto usuario creado (sin contraseña)
PUT
/api/users/{id}

Actualizar un usuario existente

Cuerpo de la Petición:
{ name?, email?, phone?, password?, tagIds[]? }
Respuesta:
Objeto usuario actualizado (sin contraseña)
DELETE
/api/users/{id}

Eliminar un usuario

Respuesta:
{ success: true }
🔐Autenticación
Endpoints para gestionar autenticación
POST
/api/auth/login

Autenticar usuario con email y contraseña

Cuerpo de la Petición:
{ email, password }
Respuesta:
{ success: true, user: {...}, message: 'Login successful' }
🏷️Etiquetas
Endpoints para gestionar etiquetas
GET
/api/tags

Obtener todas las etiquetas

Respuesta:
Array de objetos etiqueta
POST
/api/tags

Crear una nueva etiqueta

Cuerpo de la Petición:
{ name }
Respuesta:
Objeto etiqueta creado
DELETE
/api/tags/{id}

Eliminar una etiqueta

Respuesta:
{ success: true }