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 tus APIs
- Consola de Google Cloud: Registro, supervisión y uso compartido
Arquitectura
A continuación, se muestra un diagrama de alto nivel de los componentes principales de API Gateway:
En este diagrama, se ilustra lo siguiente:
El proveedor de la API es responsable de crear e 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 de 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 app capaz de realizar una llamada REST, como un navegador, una app para dispositivos móviles o una app web.
El cliente de la API solo necesita conocer la URL de la API, el verbo de solicitud (como
GET
,PUT
,POST
,DELETE
), cualquier requisito de autenticación y el formato de los datos que se envían a la API o que se reciben de ella.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 gcloud CLI 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.
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. Usa Google Cloud CLI para subir la especificación de OpenAPI, que crea la configuración de la API y, luego, implementarla 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 registra Control de servicios, 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.
Controla una solicitud a la API
En una configuración de API, hay dos tipos de extremos:
- Extremo de la 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 implementación del servicio de backend define la configuración de seguridad, como el acceso HTTP o HTTPS.
Las solicitudes a tu 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, ocurre lo siguiente:
API Gateway crea un token de seguimiento para Cloud Trace.
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.
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.
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.
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.
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.