Saltearse al contenido

Documentación de la API

Este documento proporciona una referencia completa de todos los endpoints disponibles en la API de FactuStorm.

Endpoints de Autenticación

Registrar Usuario

POST /api/v1/auth/register
Content-Type: application/json
{
"email": "usuario@ejemplo.com",
"password": "contraseña_segura",
"name": "Juan Pérez"
}

Respuesta:

{
"id": "user_id",
"email": "usuario@ejemplo.com",
"name": "Juan Pérez",
"created_at": "2024-03-20T12:00:00Z"
}

Iniciar Sesión

POST /api/v1/auth/login
Content-Type: application/json
{
"email": "usuario@ejemplo.com",
"password": "contraseña_segura"
}

Respuesta:

{
"access_token": "jwt_token",
"refresh_token": "refresh_token",
"expires_in": 3600,
"token_type": "Bearer"
}

Renovar Token

POST /api/v1/auth/refresh
Content-Type: application/json
{
"refresh_token": "refresh_token"
}

Respuesta:

{
"access_token": "nuevo_jwt_token",
"expires_in": 3600,
"token_type": "Bearer"
}

Cerrar Sesión

POST /api/v1/auth/logout
Authorization: Bearer <jwt_token>

Respuesta:

{
"message": "Sesión cerrada exitosamente"
}

Endpoints de Gestión de Usuarios

Obtener Perfil de Usuario

GET /api/v1/users/me
Authorization: Bearer <jwt_token>

Respuesta:

{
"id": "user_id",
"email": "usuario@ejemplo.com",
"name": "Juan Pérez",
"created_at": "2024-03-20T12:00:00Z",
"updated_at": "2024-03-20T12:00:00Z"
}

Actualizar Perfil de Usuario

PUT /api/v1/users/me
Authorization: Bearer <jwt_token>
Content-Type: application/json
{
"name": "Juan Actualizado",
"email": "juan@ejemplo.com"
}

Respuesta:

{
"id": "user_id",
"email": "juan@ejemplo.com",
"name": "Juan Actualizado",
"updated_at": "2024-03-20T12:30:00Z"
}

Respuestas de Error

Todos los endpoints pueden devolver las siguientes respuestas de error:

400 Bad Request

{
"error": "Solicitud Incorrecta",
"message": "Datos de entrada inválidos",
"details": {
"field": "email",
"message": "Formato de email inválido"
}
}

401 Unauthorized

{
"error": "No Autorizado",
"message": "Token inválido o expirado"
}

403 Forbidden

{
"error": "Prohibido",
"message": "Permisos insuficientes"
}

404 Not Found

{
"error": "No Encontrado",
"message": "Recurso no encontrado"
}

500 Internal Server Error

{
"error": "Error Interno del Servidor",
"message": "Ocurrió un error inesperado"
}