Implementa las API de Cloud Endpoints en API Gateway

Cloud Endpoints es un sistema de administración de API que te ayuda a proteger, supervisar, analizar y establecer cuotas en tus APIs. Endpoints usa el proxy de servicio extensible (ESP) o el proxy de servicio extensible V2 Beta (ESPv2 Beta) para alojar tus APIs.

Cuando usas extremos, tienes tres opciones para definir tu API:

Desarrolla API con API Gateway

API Gateway admite las API que se describen con la especificación de OpenAPI, versión 2.0. Esto significa que puedes implementar tus especificaciones de OpenAPI desde Endpoints en API Gateway.

Implementa especificaciones de OpenAPI de Endpoints en API Gateway

API Gateway admite las mismas opciones y el formato de especificación de OpenAPI que admite Cloud Endpoints para OpenAPI. Esto significa que puedes usar las mismas definiciones de seguridad, cuota y otras de las 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 especificación de OpenAPI:

  • En Endpoints, configura la propiedad host en la parte del nombre de host de la URL que se creó cuando implementaste el ESP, donde ESP es el servicio que se usó para alojar la API de Endpoints.
  • En API Gateway, omite host. o configúralo con el nombre de DNS de la API implementada. Los proveedores de API suelen establecerlo en el nombre de DNS. cuando comparten la especificación de OpenAPI con los consumidores de la API. 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 implementado en Cloud Run Functions:

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

Para Endpoints, puedes hacer lo siguiente:

  1. Implementa el ESP, que crea la URL que luego usarás para acceder a las API implementadas en el ESP. Por ejemplo:

    https://gateway-12345-uc.a.run.app
  2. Edita la especificación de OpenAPI para establecer la propiedad host con el nombre de dominio de la URL del ESP. Por ejemplo:

    host: gateway-12345-uc.a.run.app
  3. Implementa la especificación de OpenAPI en ESP.

  4. Accede a tu API con la URL de ESP. En la especificación de OpenAPI anterior, el elemento paths se establece en /hello para que puedas acceder a esta API mediante la siguiente URL:

    https://gateway-12345-uc.a.run.app/hello

Como puedes ver, en el caso de Endpoints, primero debes implementar el ESP para poder configurar el valor de la propiedad host.

Si deseas usar esta definición de API a fin de crear una configuración de API para API Gateway, puedes borrar la propiedad host por completo o dejarla en el archivo. En API Gateway, no se aplica el valor de la propiedad host.

La URL de la puerta de enlace implementada y, por lo tanto, la URL que usan tus clientes para acceder a tu API se define cuando creas la puerta de enlace, de la siguiente forma:

https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev

donde GATEWAY_ID es el nombre de la puerta de enlace, HASH es el código hash único que se generó cuando se implementó la API y REGION_CODE es el código de la región de GCP en la que implementaste la puerta de enlace.

Después de implementar una API en una instancia de puerta de enlace, 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 la implementación de API, consulta Modelo de implementación de API Gateway.

Para obtener más información sobre cómo crear la especificación de OpenAPI para tu definición de API, consulta Descripción general de OpenAPI.

¿Qué sigue?