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:

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 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 de 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 de DNS cuando comparten la especificación de OpenAPI con sus consumidores de APIs. Sin embargo, API Gateway no aplica el valor de la propiedad host.

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:

  1. 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
  2. Edita la especificación de OpenAPI para definir la propiedad host (en OpenAPI 2.0) o servers.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
  3. Despliega la definición de OpenAPI en Vertex AI Search o ESPv2 Beta.

  4. 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 paths se ha definido como /hello para 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.

Siguientes pasos