Desplegar APIs de Cloud Endpoints en API Gateway
Cloud Endpoints es un sistema de gestión de APIs que te ayuda a proteger, monitorizar, analizar y definir cuotas en tus APIs. Endpoints usa el proxy de servicio extensible (ESP) o el proxy de servicio extensible V2 (ESPv2) para alojar tus APIs.
Cuando usas Endpoints, tienes tres opciones para definir tu API:
- Cloud Endpoints para OpenAPI
- Cloud Endpoints para gRPC
- Cloud Endpoints Frameworks para el entorno estándar de App Engine
Desarrollar APIs con API Gateway
API Gateway admite APIs descritas mediante la especificación de OpenAPI, versión 2.0. Esto significa que puedes implementar tus especificaciones de OpenAPI desde Endpoints en API Gateway.
Desplegar especificaciones de OpenAPI de Endpoints en API Gateway
API Gateway admite el mismo formato y las mismas opciones de definición de especificación OpenAPI que Cloud Endpoints para OpenAPI. Esto significa que puedes usar las mismas definiciones de seguridad, cuota y otras de tus especificaciones de OpenAPI de Endpoints para definir una API en API Gateway.
La única diferencia entre Endpoints y API Gateway es la forma en que procesan la propiedad host
en la definición de la especificación de OpenAPI:
- En Endpoints, asigna a la propiedad
host
la parte del nombre de host de la URL creada al implementar ESP, donde ESP es el servicio que se usa para alojar tu API Endpoints. - En API Gateway, omite
host
o asigna el nombre de DNS de la API implementada. Los proveedores de APIs suelen definirlo con el nombre DNS cuando comparten la especificación de OpenAPI con sus consumidores de APIs. Sin embargo, API Gateway no aplica el valor de la propiedadhost
.
Por ejemplo, a continuación se muestra una parte de una especificación de OpenAPI que usa Endpoints para definir una API que acceda a un servicio de backend desplegado en funciones de Cloud Run:
swagger: '2.0' info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 host: ESP_HOST schemes: - https produces: - application/json paths: /hello: ...
En Endpoints, haz lo siguiente:
Despliega ESP, que crea la URL que usarás para acceder a las APIs desplegadas en ESP. Por ejemplo:
https://gateway-12345-uc.a.run.app
Edita la especificación de OpenAPI para asignar a la propiedad
host
el nombre de dominio de la URL del ESP. por ejemplo:host: gateway-12345-uc.a.run.app
Despliega la especificación de OpenAPI en ESP.
Accede a tu API mediante la URL del ESP. En la especificación de OpenAPI anterior, el elemento
paths
se ha definido como/hello
, por lo que puedes acceder a esta API mediante la siguiente URL:https://gateway-12345-uc.a.run.app/hello
Como puede ver, para los endpoints, primero debe implementar ESP para poder definir el valor de la propiedad host
.
Para usar esta definición de API y crear una configuración de API para API Gateway, puedes eliminar por completo la propiedad host
o dejarla en el archivo.
API Gateway no aplica el valor de la propiedad host
.
La URL de la pasarela implementada y, por lo tanto, la URL que usan tus clientes para acceder a tu API, se define cuando creas la pasarela, con el siguiente formato:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
donde GATEWAY_ID es el nombre de la pasarela, HASH es el código hash único generado al implementar la API y REGION_CODE es el código de la Google Cloud región en la que implementó la pasarela.
Después de desplegar una API en una instancia de pasarela, la URL que usas para acceder a /hello
es la siguiente:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Para obtener más información sobre cómo desplegar APIs, consulta Modelo de despliegue de API Gateway.
Para obtener más información sobre cómo crear la especificación de OpenAPI de tu definición de API, consulta la información general sobre OpenAPI.