Arquitectura de API Gateway

API Gateway es un sistema de administración de API que brinda administración, supervisión y autenticación para tus API. Los componentes que conforman API Gateway incluyen los siguientes:

  • API Gateway: Para administrar todos los aspectos de una API implementada
  • Service Control: para aplicar las reglas de administración de API
  • Service Management: para administrar las configuraciones de API
  • SDK de Cloud: Para implementar y administrar tus API
  • Google Cloud Console: para registro, supervisión y uso compartido

Arquitectura

A continuación, se muestra un diagrama de alto nivel de los componentes principales de API Gateway:

Los componentes principales de API Gateway.

En este diagrama:

  • El proveedor de API es responsable de crear y de implementar una API en API Gateway. Cada API se define mediante un archivo escrito como una especificación de OpenAPI 2.0.

    La especificación de OpenAPI define la URL pública del extremo REST para la API, el servicio de backend al que accede la API y cualquier otra característica de la API, como la autenticación, el formato de datos y las opciones de respuesta.

  • El cliente de la API realiza una solicitud REST a una API alojada en API Gateway para acceder a los servicios de backend. Un cliente de API puede ser cualquier aplicación capaz de realizar una llamada a REST, como un navegador, una aplicación para dispositivos móviles o una aplicación web.

    El cliente de API solo necesita conocer la URL de la API, el verbo de la solicitud (como GET, PUT, POST y DELETE), cualquier requisito de autenticación y el formato. de todos los datos enviados o recibidos de la API

    El cliente de la API no necesita saber nada sobre la implementación del backend. De hecho, se puede configurar una sola API alojada en API Gateway para acceder a diferentes backends según la información que se pasa en la solicitud.

Componentes de API Gateway

API Gateway

API Gateway proporciona una solución de pago por uso completamente administrada para alojar tus API. API Gateway proporciona acceso seguro a tus servicios de backend mediante una API de REST bien definida que sea coherente en todos tus servicios, sin importar la implementación del servicio.

API Gateway se integra en Google Cloud para que puedas usar las mismas herramientas de desarrollo, supervisión, registro y seguimiento que usas con cualquier otro producto de Google Cloud.

Si te conectas a un servicio de backend alojado fuera de Google Cloud, aún puedes aprovechar todos los servicios de Google Cloud, incluidos los de autenticación y autorización que se usan para controlar el acceso a tus API.

API de Service Control

La API de Service Control aplica reglas de administración de API en el entorno de ejecución, como autenticación de clave de API, supervisión y registro. Service Control proporciona los métodos siguientes:

  • Verificación: comprueba la autenticación y las claves de API, y también indica cuándo se debe permitir una llamada.
  • Informe: notifica a los sistemas de registro para el registro y la supervisión.

API de Administración de servicios

Usas la especificación de OpenAPI para definir tu API. Luego, usa el SDK de Cloud para subir la especificación de OpenAPI a Service Management, que crea la configuración de la API. Aquí también tienen lugar otras tareas relacionadas con la configuración, como compartir la API con otros desarrolladores, habilitar o inhabilitar la API en proyectos diferentes y generar claves de API.

SDK de Cloud

Con el SDK de Cloud, se proporciona la herramienta de línea de comandos de gcloud de que puedes usar para realizar llamadas a diversos servicios de Google Cloud. Usa la herramienta de línea de comandos de gcloud para subir la especificación de OpenAPI, que crea la configuración de la API y, luego, implementarla en API Gateway.

Cloud Console

Google Cloud Console es la interfaz gráfica de usuario de Google Cloud. Usa Google Cloud Console para exponer los datos de supervisión y registro que registra Service Control, a fin de configurar la autenticación y la autorización, y para que los desarrolladores generen claves de API para llamar a la API.

Maneja una solicitud a la API

En una configuración de API, hay dos tipos de extremos:

  • Extremo de API: Define el extremo disponible de forma pública que los clientes usan para consumir las API.
  • Extremo de backend: Define el extremo que la API usa para conectarse al servicio de backend. La configuración de seguridad, como el acceso HTTP o HTTPS, se define mediante la implementación del servicio de backend.

Las solicitudes al extremo de tu API se pasan al extremo de backend, incluidos los datos que forman parte de la solicitud. Las respuestas del servicio de backend, incluidos los datos que muestra el servicio, se pasan al cliente.

Solicitar enrutamiento

Cuando se recibe una solicitud, ocurre lo siguiente:

  1. API Gateway crea un token de seguimiento para Cloud Trace.

  2. API Gateway coincide con la ruta de las solicitudes entrantes con la API de destino. Después de encontrar una ruta que coincide, API Gateway realiza los pasos de autenticación necesarios para la API especificada.

  3. Si se requiere una validación de JWT, API Gateway valida la autenticación por medio de la clave pública adecuada para el firmante y valida el campo del público en el JWT. Si se requiere una clave de API, API Gateway llama a la API de Service Control para validar la clave.

  4. Service Control busca la clave para validarla y se asegura de que el proyecto asociado a esa clave haya habilitado la API. Si la clave no es válida o si el proyecto no habilitó la API, se rechaza la llamada y se la registra por medio de la API de Service Control.

  5. Si Service Control valida la clave correctamente, la solicitud se reenvía al backend con todos los encabezados originales, y con un encabezado de validación de JWT si corresponde.

  6. Cuando se recibe una respuesta del backend, API Gateway le muestra la respuesta al emisor y envía la información final sobre el tiempo a Trace. Los puntos de llamada se registran mediante la API de Service Control, que escribe las métricas y los registros en sus destinos correspondientes.

¿Qué sigue?