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 servicios extensible (ESP) o el proxy de servicios 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
Tanto Endpoints como API Gateway admiten APIs descritas mediante la especificación OpenAPI, OpenAPI 2.0 u OpenAPI 3.x. Si has usado OpenAPI para definir tus APIs de Endpoints, significa que también puedes desplegarlas 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 cómo procesan la propiedad host en la definición de la especificación de OpenAPI:
- En Endpoints, asigna a la propiedad
hostla parte del nombre de host de la URL creada al implementar ESP, donde ESP es el servicio que se usa para alojar tu API de Endpoints. - En API Gateway, omite
hosto asigna el nombre de DNS de la API implementada. Los proveedores de APIs suelen definirlo con el nombre de 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 definición de OpenAPI que usa Endpoints para definir una API que acceda a un servicio de backend desplegado en funciones de Cloud Run:
OpenAPI 2.0
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: HOST schemes: - https ...
OpenAPI 3.x
openapi: 3.0.4 info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 servers: - url: https://HOST x-google-endpoint: {} ...
Cuando usas Endpoints para desplegar APIs, puedes hacer lo siguiente:
Despliega Vertex AI Search o ESPv2 Beta, que crea la URL que usarás para acceder a las APIs desplegadas. Por ejemplo:
https://gateway-12345-uc.a.run.app
Edita la especificación de OpenAPI para definir la propiedad
host(en OpenAPI 2.0) oservers.url(en OpenAPI 3.x) con el nombre de dominio de la URL de la versión beta de Vertex AI Search o ESPv2. por ejemplo:host: gateway-12345-uc.a.run.app
Despliega la definición de OpenAPI en Vertex AI Search o ESPv2 Beta.
Accede a tu API mediante la URL de la versión beta de Vertex AI Search o ESPv2. En las definiciones de OpenAPI anteriores, el elemento
pathsse ha definido como/hellopara que puedas acceder a esta API mediante la siguiente URL:https://gateway-12345-uc.a.run.app/hello
Para usar la misma definición de API para crear una configuración de API para API Gateway, puedes eliminar por completo la propiedad host o servers.url, 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 al crear 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 implementaste 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 el despliegue de APIs, consulta el artículo 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.