La arquitectura de referencia de APIs está relacionada de alguna manera con una arquitectura de interoperabilidad. En nuestro caso, se ha decidido mantenerla independiente para garantizar una correcta separación de capas y evolución futura del modelo, aunque a nivel técnico una misma plataforma software pueda dar cobertura a la arquitectura de APIs y a la arquitectura de interoperabilidad.
Fundamentalmente está compuesta por una pieza central que actúa de API Manager o API Management, permitiendo publicar un catálogo de APIs que otros sistemas o clientes consumen. Para esto existen muchas posibilidades en la configuración de la publicación de APIs: para gestionar el rate limit, si es necesario un cliente para la subscripción, autenticación, autorización, etc... Además, debe ser posible aplicar políticas que den soporte a garantizar la trazabilidad y la seguridad.
Existen otras piezas adicionales en la arquitectura de APIs, que apoyan al API Manager para facilitar la publicación de APIs (Portal del desarrollador, o API Publisher), componente para gestionar claves y certificados, componentes de identidad y conectores o colectores para observabilidad.
Necesidad
Permitir la publicación de APIs en un componente centralizado que permita realizar el gobierno de APIs de la organización, definir mecanismos de acceso por cada API y aplicar las políticas definidas en cada caso de uso. Además, debe ofrecer un catálogo de APIs de la organización a la comunidad de desarrolladores y entidades que consuman servicios publicados en el catálogo.
Características principales
- API Gateway como punto de entrada único para el consumo de APIs
- Gestor de APIs o API Manager como catálogo de APIs existentes
- Gestión de nivel de visibilidad, versionado, métricas de uso, definición de políticas de consumo de las APIs
- Autenticación, autorización y gestión de suscripciones a APIs para un control exhaustivo de su uso
- Portal del desarrollador, como interfaz a través de la cual los desarrolladores acceden a las APIs así como también a la documentación de las mismas
- Posibilidad de balanceo de carga.
- Uso de códigos de respuesta estándar
- Nomenclatura de APIs semánticamente entendibles
- Posibilidad de versionado
- Administración del ciclo de vida de las APIs
- Sistema de caché para evitar llamadas innecesarias a los servicios
Relaciones
- Consumida por:
- Arquitectura de gestores de contenidos.
- Arquitectura de MicroFrontEnds.
- Arquitectura de Movilidad.
- Arquitectura de realidad aumentada.
- Clientes.
- Accede a:
- Arquitectura de microservicios.
- Arquitectura de funciones.
- Arquitectura de interoperabilidad. (APIs Síncronas)
- Arquitectura de eventos. (APIs Asíncronas)