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:

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 propiedad host.

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:

  1. 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
  2. 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
  3. Despliega la especificación de OpenAPI en ESP.

  4. 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.

Siguientes pasos