Ir al contenido

Convenciones HTTP y Formato de Errores

El backend de uunit9 utiliza respuestas en formato JSON estandarizado para la gestión de errores y validaciones (apps/api/src/lib/http.ts).

1. Error de Validación Zod (400 Bad Request)

Sección titulada «1. Error de Validación Zod (400 Bad Request)»

Cuando los datos enviados en el cuerpo de la solicitud no cumplen con el esquema Zod esperado:

{
"error": "validation_error",
"issues": [
{
"code": "invalid_type",
"expected": "string",
"received": "undefined",
"path": ["name"],
"message": "Required"
}
]
}

2. Error de JSON Malformado (400 Bad Request)

Sección titulada «2. Error de JSON Malformado (400 Bad Request)»
{
"error": "invalid_json"
}

3. Error de Sesión o Autenticación (401 Unauthorized)

Sección titulada «3. Error de Sesión o Autenticación (401 Unauthorized)»
{
"error": "unauthorized"
}

4. Error de Permisos insipientes (403 Forbidden)

Sección titulada «4. Error de Permisos insipientes (403 Forbidden)»
{
"error": "forbidden",
"message": "Se requiere rol de administrador u owner"
}
{
"error": "not_found"
}

Ejemplo al intentar abrir una caja habiendo otra sesión abierta:

{
"error": "session_already_open"
}

Toda solicitud autenticada pasa por el middleware de sesión que valida la cookie/token y expone en el contexto de Hono (c.get(...)):

  • orgId: Identificador de la organización del usuario.
  • userId: ID del usuario autenticado.
  • role: Rol activo (owner, admin, waiter, kitchen, etc.).