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
  • gcloud CLI para implementar y administrar las APIs
  • Consola de Google Cloud: para registrar, supervisar y compartir

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, se ilustra lo siguiente:

  • El proveedor de la 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 de 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 de REST a una API alojada en API Gateway para acceder a servicios de backend. Un cliente de API puede ser cualquier aplicación capaz de realizar llamadas REST, como un navegador, una aplicación para dispositivos móviles o una aplicación web.

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

    El cliente de la API no necesita saber nada sobre la implementación de 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 Service Management

Usas la especificación de OpenAPI para definir tu API. Luego, usa gcloud CLI para subir la especificación de OpenAPI a Service Management, que crea la configuración de la API. Aquí también se llevan a cabo 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.

gcloud CLI

La CLI de gcloud proporciona la herramienta de línea de comandos de gcloud, que puedes usar para realizar llamadas a varios servicios de Google Cloud. Usarás Google Cloud CLI para subir tu especificación de OpenAPI, lo que creará la configuración de la API y, luego, implementarás la configuración de la API en API Gateway.

consola de Cloud

La consola de Cloud es la interfaz gráfica de usuario de Google Cloud. Usa la consola de Google Cloud para exponer los datos de supervisión y registro que registró el Control de servicios, para configurar la autenticación y autorización, y para que los desarrolladores generen claves de API para llamar a la API.

Cómo controlar una solicitud a la API

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

  • Extremo de API: Define el extremo disponible públicamente que los clientes usan para consumir tus APIs.
  • Extremo de backend: Define el extremo que usa la API para conectarse a tu 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 que se realizan al extremo de API se pasan al extremo de backend, incluidos los datos que se pasan como parte de la solicitud. Las respuestas del servicio de backend, incluidos los datos que muestra el servicio, se devuelven al cliente.

Solicitar enrutamiento

Cuando se recibe una solicitud:

  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 necesita una validación de JWT, API Gateway valida la autenticación con la clave pública correspondiente para el firmante y valida el campo de público en JWT. Si se requiere una clave de API, API Gateway llama a la API de Service Control para validarla.

  4. El Control de servicios busca la clave para validarla y se asegura de que el proyecto asociado con la 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 registra a través 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?