Todas las rutas protegidas requieren el header auth-token con un JWT válido obtenido en /api/login.
| Método | Endpoint | Descripción | Autorización |
|---|---|---|---|
| POST | /api/register | Registrar nuevo usuario | No |
| POST | /api/login | Iniciar sesión, devuelve token JWT | No |
| POST | /api/logout | Cerrar sesión (invalida el token actual) | Sí |
| GET | /api/me | Datos del usuario autenticado | Sí |
| Método | Endpoint | Descripción | Autorización |
|---|---|---|---|
| GET | /api/areapersonal | Datos del usuario (nombre, avatar) | Sí |
| PUT | /api/areapersonal | Modificar nombre/contraseña | Sí |
| PUT | /api/areapersonal/avatar | Subir/actualizar avatar | Sí |
| Método | Endpoint | Descripción | Autorización |
|---|---|---|---|
| GET | /api/articles | Listado de artículos | No |
| GET | /api/articles/:id | Obtener artículo por ID | No |
| GET | /api/articles/:id/comments | Comentarios de un artículo | No |
| POST | /api/articles | Crear artículo | Sí |
| POST | /api/articles/:id/vote | Votar artículo (upVote/downVote) | Sí |
| PUT | /api/articles/:id | Editar artículo | Sí |
| DELETE | /api/articles/:id | Eliminar (soft delete) artículo | Sí |
| GET | /api/:category/articles | Artículos filtrados por categoría | No |
| Método | Endpoint | Descripción | Autorización |
|---|---|---|---|
| GET | /api/comments | Listado de comentarios | No |
| GET | /api/comments/:id | Obtener comentario por ID | No |
| POST | /api/comments | Crear comentario | Sí |
| POST | /api/comments/:id/vote | Votar comentario (upVote/downVote) | Sí |
| PUT | /api/comments/:id | Editar comentario | Sí |
| DELETE | /api/comments/:id | Eliminar (soft delete) comentario | Sí |
| Método | Endpoint | Descripción | Autorización |
|---|---|---|---|
| GET | /api/categories | Listado de categorías | No |
| POST | /api/categories | Crear categoría | Sí |
| PUT | /api/categories/:id | Editar categoría | Sí |
| DELETE | /api/categories/:id | Eliminar categoría | Sí |