Saltearse al contenido

Inicio Rápido

Este documento proporciona una referencia completa para 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": "[email protected]",
"password": "contraseña_segura",
"name": "Juan Pérez"
}

Respuesta:

{
"id": "id_usuario",
"email": "[email protected]",
"name": "Juan Pérez",
"created_at": "2024-03-20T12:00:00Z"
}

Iniciar Sesión

POST /api/v1/auth/login
Content-Type: application/json
{
"email": "[email protected]",
"password": "contraseña_segura"
}

Respuesta:

{
"access_token": "token_jwt",
"refresh_token": "token_refresco",
"expires_in": 3600,
"token_type": "Bearer"
}

Renovar Token

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

Respuesta:

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

Cerrar Sesión

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

Respuesta:

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

Endpoints de Gestión de Usuarios

Obtener Perfil de Usuario

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

Respuesta:

{
"id": "id_usuario",
"email": "[email protected]",
"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 <token_jwt>
Content-Type: application/json
{
"name": "Juan Actualizado",
"email": "[email protected]"
}

Respuesta:

{
"id": "id_usuario",
"email": "[email protected]",
"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"
}