api-design.md

Especificaciones de Diseño de API

Este documento describe los estándares para diseñar y construir APIs RESTful en FIBEX.

Principios

Convenciones de Nomenclatura

Versionado

Todas las APIs deben ser versionadas. El versionado debe incluirse en la ruta de la URL.

Respuestas

Códigos de estado: guía de uso

Notas sobre condicionales y caching:

Envelope estándar

Todas las APIs deben responder con el siguiente envelope. success indica el resultado; data contiene el recurso o colección; error describe fallas; meta y links son opcionales y se usan principalmente para colecciones paginadas.

Éxito (recurso único):

{
  "success": true,
  "data": {
    "userId": "123",
    "name": "John Doe"
  }
}

Éxito (colección con paginación):

{
  "success": true,
  "data": [
    { "userId": "121", "name": "Jane" },
    { "userId": "122", "name": "Juan" }
  ],
  "meta": {
    "page": 2,
    "pageSize": 20,
    "totalItems": 132,
    "totalPages": 7
  },
  "links": {
    "self": "/api/v1/users?page=2&pageSize=20",
    "first": "/api/v1/users?page=1&pageSize=20",
    "prev": "/api/v1/users?page=1&pageSize=20",
    "next": "/api/v1/users?page=3&pageSize=20",
    "last": "/api/v1/users?page=7&pageSize=20"
  }
}

Error:

{
  "success": false,
  "error": {
    "code": "INVALID_INPUT",
    "message": "La dirección de correo electrónico no es válida.",
    "details": [
      { "field": "email", "issue": "invalid_format" }
    ],
    "traceId": "b1b6f2c5-2c1c-4a34-9f6e-0b2a5c1a9cdd"
  }
}

Notas:

Mapeo recomendado de códigos de estado

Autenticación

JWT: firma, cifrado y gestión de claves

Autenticación centralizada (externa e interna)

Revocación y cierre de sesión

Paginación

Seguridad

Cifrado y manejo de datos sensibles