Software para administracións públicas, corpos de seguridade e servizos de emerxencia
Análise técnica · 12 de maio de 2026 · 11 min de lectura

API REST e arquitectura aberta: como conectamos o software municipal con sistemas externos

Patróns de integración, autenticación, versionado e compatibilidade. Unha guía práctica de como deseñamos as API nos nosos produtos para que se integren ben cos sistemas que xa tes en marcha.

"Arquitectura aberta" é unha desas frases que aparecen en todas as propostas comerciais de software para o sector público. Pero, na práctica, o que recibe o cliente pode variar enormemente: desde un endpoint xenérico mal documentado ata unha API completa con SDK en varias linguaxes. En Labrax temos unha visión moi concreta do que significa que un software sexa realmente integrable, e este artigo describe esa visión.

O problema de fondo: o legado do sector público

Unha administración pública mediana pode ter entre 15 e 40 sistemas operativos en produción á vez: xestor de expedientes, plataforma de notificacións, sistemas de pagamento, padrón, sede electrónica, intranet corporativa, sistemas de RRHH, CRM cidadán, plataformas verticais para áreas concretas... Cando un novo software se incorpora ao ecosistema, a pregunta que importa non é se é bo, senón se é capaz de convivir.

A convivencia ten dúas dimensións:

  • Recibir datos dos sistemas existentes (consultar o padrón, validar a identidade, ler expedientes).
  • Enviar datos aos sistemas existentes (publicar notificacións, rexistrar entradas na sede, alimentar o CRM).

Ambas as direccións requiren API. Se un software non expón API, está a obrigar o cliente a vivir nunha illa. Se a expón pero non a documenta, está a finxir que é integrable cando en realidade non o é.

O noso estándar: REST + OpenAPI 3.0

Todos os nosos produtos expoñen unha API REST con especificación OpenAPI 3.0. Isto significa que:

  • A estrutura é predicible (verbos HTTP estándar, códigos de estado correctos, respostas en JSON).
  • A documentación está versionada como código, xerada desde o propio código fonte, sen posibilidade de diverxencia entre o documentado e o real.
  • Calquera cliente pode usar ferramentas estándar (Postman, Insomnia, Swagger UI) para explorar e probar a API.
  • Pódense xerar SDK automaticamente en calquera linguaxe a partir do ficheiro OpenAPI.

Autenticación: OAuth2 con JWT

O fluxo estándar é OAuth2 Client Credentials para integracións máquina a máquina e Authorization Code con PKCE para os fluxos nos que haxa un usuario humano implicado. Os tokens son JWT de caducidade curta (1 hora) e refresh tokens con rotación.

Para as administracións públicas hai un matiz importante: os sistemas que requiren identidade dixital cualificada (Cl@ve, FNMT, certificados) conéctanse a través da sede electrónica do cliente, non da nosa API directa. A nosa API delega a autenticación no xestor de identidade corporativo.

Boa práctica. Nunca fagamos que un cliente integre o noso software dándolle credenciais do seu sistema corporativo. O correcto é que as credenciais flúan a través de xestores de identidade estandarizados. Isto reduce o risco, simplifica a auditoría e respecta os principios do Esquema Nacional de Seguridade.

Versionado: semver e compatibilidade cara atrás

A API versiónase con semver explícito no URL (/api/v1/recursos). Cando se introduce un cambio que rompe a compatibilidade, sobe a versión maior (v2) e a v1 mantense operativa durante polo menos 24 meses para dar tempo aos clientes a migrar.

As modificacións aditivas (novos campos, novos endpoints, novos códigos de erro) non rompen a compatibilidade e non implican cambio de versión. Isto permite que o software evolucione sen obrigar os clientes a actualizar as súas integracións constantemente.

Patróns de integración habituais

Consulta de datos en tempo real

É o patrón máis simple. O cliente fai unha petición GET e nós respondemos cos datos. Recomendado para datos pequenos, consultas puntuais e casos nos que a latencia importa.

Exemplo: comprobar se unha matrícula ten autorización ZBE activa.

Webhooks para notificacións

Cando o cliente quere reaccionar a eventos no noso sistema (unha nova denuncia, unha autorización vencida), non debe facer polling. Configuramos un webhook: cando ocorre o evento, o noso sistema fai unha petición HTTP POST ao endpoint do cliente coa información estruturada.

Isto require que o cliente teña un endpoint exposto e asinado criptograficamente para validar que a chamada vén realmente de nós.

Importación masiva (bulk operations)

Para cargas iniciais ou sincronizacións periódicas, as API por rexistro son ineficientes. Expoñemos endpoints de bulk que aceptan ata 1.000 rexistros por petición e devolven un identificador de operación que o cliente pode consultar despois para ver o estado.

Eventos en streaming (Server-Sent Events)

Para os casos nos que o cliente necesita observar cambios en tempo real (como un cadro de mando que mostra denuncias en directo), expoñemos endpoints SSE. Máis lixeiros que WebSockets e compatibles con calquera proxy HTTP estándar.

Idempotencia: o detalle que evita os problemas máis caros

As API públicas no sector público teñen un problema específico: as redes das administracións adoitan ter firewalls agresivos, proxies inestables e conexións intermitentes. Unha operación POST pode fallar a metade do proceso e o cliente non sabe se chegou ao servidor ou non.

A solución é a idempotencia: cada operación de creación leva unha clave única (Idempotency-Key) xerada polo cliente. Se o cliente reintenta a mesma operación coa mesma clave, o servidor recoñece que xa a procesou e devolve a resposta orixinal sen duplicar a acción.

Isto evita o problema das "denuncias duplicadas" ou das "autorizacións triplicadas" cando hai reintentos por timeout.

Documentación: o factor máis descoidado

Unha API sen boa documentación é basicamente unha API que non existe. O noso estándar inclúe:

  • Especificación OpenAPI 3.0 completa, navegable con Swagger UI ou Redoc.
  • Exemplos de petición e resposta para cada endpoint, con datos representativos.
  • Titoriais de inicio rápido para os fluxos máis habituais (autenticación, primeira consulta, xestión de erros).
  • Códigos de erro documentados con descrición e acción recomendada.
  • Guías de integración específicas para sistemas habituais no sector público.
  • Postman collections exportables para comezar a probar inmediatamente.
  • Sandbox público onde se pode probar a API sen impacto en produción.

Erros estruturados

Os erros seguen o formato RFC 7807 (Problem Details for HTTP APIs). En lugar de devolver unha mensaxe libre, devolvemos un obxecto estruturado:

{ "type": "https://labrax.es/errors/authorization-not-found", "title": "Autorización non atopada", "status": 404, "detail": "A matrícula 1234ABC non ten autorización vixente.", "instance": "/api/v1/authorizations?plate=1234ABC" }

Isto permite que os clientes xestionen os erros de forma programática, distinguindo entre tipos diferentes de fallo (autenticación, validación, recurso non atopado, conflito, erro interno) e reaccionando adecuadamente.

Compatibilidade co Esquema Nacional de Seguridade

As nosas API cumpren os requisitos do ENS Alto:

  • Cifrado TLS 1.3 obrigatorio (TLS 1.2 mínimo en compatibilidade).
  • Logs de auditoría de todas as operacións, conservados durante 24 meses.
  • Identificación inequívoca do usuario ou sistema que realiza cada operación.
  • Trazabilidade dos cambios de estado en calquera recurso.
  • Cifrado de datos persoais en repouso (AES-256).

O que lles pedimos aos clientes

A integración funciona en dúas direccións. Para que funcione ben, tamén lle pedimos ao cliente:

  • Dispor dun equipo técnico (interno ou externo) que entenda HTTP e JSON.
  • Contornos de probas separados de produción.
  • Xestión correcta de reintentos e erros transitorios.
  • Non almacenar credenciais no código fonte.

Se a túa organización está a avaliar unha integración cos nosos produtos ou tes dúbidas sobre como enfocala, podemos facer unha análise técnica gratuíta antes do despregamento.

A túa organización necesita algo así?

Cóntanos o teu caso e axudámosche a avaliar se Labrax é a solución que buscas.

Contacta connosco

Certificacións vixentes · auditadas por entidades acreditadas

ENS categoría alta, RD 311/2022
ISO 9001, xestión da calidade ISO 14001, xestión ambiental ISO/IEC 27001, seguridade da información ISO/IEC 20000-1, xestión de servizos TI ISO 22301, xestión da continuidade do negocio
ISO/IEC 42001, xestión da intelixencia artificial ENI, Esquema Nacional de Interoperabilidade UNE 178104, xestión da cidade intelixente UNE-EN 301549, accesibilidade TIC ISO/IEC 27701, privacidade da información