Arquitectura de API Gateway

API Gateway es un sistema de gestión de APIs que proporciona gestión, monitorización y autenticación para tus APIs. Entre los componentes que forman API Gateway se incluyen los siguientes:

  • Pasarela de APIs: para gestionar todos los aspectos de una API implementada
  • Service Control: para aplicar reglas de gestión de APIs
  • Service Management: para gestionar las configuraciones de las APIs
  • CLI de gcloud: para desplegar y gestionar tus APIs
  • Google Cloud Consola: para registrar, monitorizar y compartir

Arquitectura

A continuación, se muestra un diagrama general de los componentes principales que intervienen en API Gateway:

Los componentes principales de API Gateway.

En este diagrama:

  • El proveedor de la API es el responsable de crear y desplegar 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 endpoint REST de la API, el servicio 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 envía 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 hacer una llamada REST, como un navegador, una aplicación móvil o una aplicación web.

    El cliente de la API solo necesita saber la URL de la API, el verbo de la solicitud (como GET, PUT, POST o DELETE), los requisitos de autenticación y el formato de 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, una sola API alojada en API Gateway se puede configurar para acceder a diferentes backends en función de la información que se transmita en la solicitud.

Componentes de API Gateway

API Gateway

API Gateway ofrece una solución totalmente gestionada y de pago por uso para alojar tus APIs. API Gateway proporciona acceso seguro a tus servicios de backend a través de una API REST bien definida que es coherente en todos tus servicios, independientemente de la implementación del servicio.

API Gateway está integrado con Google Cloud para que puedas usar las mismas herramientas de desarrollo, monitorizació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, puedes seguir aprovechando todos los servicios de Google Cloud , incluidos los servicios de autenticación y autorización que se usan para controlar el acceso a tus APIs.

API Service Control

La API Service Control aplica reglas de gestión de APIs en el tiempo de ejecución, como la autenticación de claves de API, la monitorización y el registro. Service Control proporciona los siguientes métodos:

  • Comprobar: verifica la autenticación y las claves de API, e indica si se debe permitir una llamada.
  • Informe: notifica a los sistemas de registro para el registro y la monitorización.

API Service Management

Utiliza la especificación de OpenAPI para definir tu API. A continuación, usa gcloud CLI para subir la especificación de OpenAPI a Service Management, lo que crea la configuración de la API. Aquí también se realizan otras tareas relacionadas con la configuración, como compartir tu API con otros desarrolladores, habilitar o inhabilitar la API en diferentes proyectos y generar claves de API.

CLI de gcloud

La CLI de gcloud proporciona la herramienta de línea de comandos gcloud, que puedes usar para hacer llamadas a varios servicios de Google Cloud . Utilizas la CLI de Google Cloud para subir tu especificación de OpenAPI, que crea la configuración de la API, y, a continuación, para desplegar la configuración de la API en API Gateway.

consola de Cloud

La consolaGoogle Cloud es la interfaz gráfica de usuario de la consola Google Cloud . Usa la Google Cloud consola para exponer los datos de monitorización y registro que ha registrado Service Control, configurar la autenticación y la autorización, y permitir que los desarrolladores generen claves de API para llamar a la API.

Gestionar una solicitud a la API

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

  • Punto de conexión de la API: define el punto de conexión disponible públicamente que usan los clientes para consumir tus APIs.
  • Endpoint de backend: define el endpoint que usa la API para conectarse a tu servicio de backend. Los ajustes de seguridad, como el acceso HTTP o HTTPS, se definen mediante la implementación del servicio de backend.

Las solicitudes a tu endpoint de la API se transfieren al endpoint de backend, incluidos los datos que se hayan enviado como parte de la solicitud. Las respuestas del servicio de backend, incluidos los datos que devuelva el servicio, se reenvían al cliente.

Enrutamiento de solicitudes

Cuando se recibe una solicitud:

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

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

  3. Si es necesario validar el JWT, API Gateway valida la autenticación mediante la clave pública adecuada del firmante y valida el campo de audiencia del JWT. Si se necesita una clave de API, API Gateway llama a la API Service Control para validar la clave.

  4. Service Control busca la clave para validarla y comprueba que el proyecto asociado a la clave tenga habilitada la API. Si la clave no es válida o el proyecto no ha habilitado la API, la llamada se rechaza y se registra a través de la API Service Control.

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

  6. Cuando se recibe una respuesta del backend, API Gateway devuelve la respuesta a la persona que ha llamado y envía la información de tiempo final a Trace. La API Service Control registra los puntos de llamada y, a continuación, escribe las métricas y los registros en sus destinos correspondientes.

Siguientes pasos