Implementa las API de Cloud Endpoints en API Gateway

Cloud Endpoints es un sistema de administración de APIs 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

Tanto Endpoints como API Gateway admiten las APIs que se describen con la especificación de OpenAPI, OpenAPI 2.0 o OpenAPI 3.x. Si usaste OpenAPI para definir tus APIs de Endpoints, esto significa que también puedes implementarlas 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 como el nombre de DNS de la API implementada. Los proveedores de APIs suelen establecerlo en 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 permite acceder a un servicio de backend implementado en Cloud Run Functions:

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 implementar APIs, debes hacer lo siguiente:

  1. Implementa Vertex AI Search o ESPv2 Beta, que crea la URL que luego usarás para acceder a las APIs implementadas. Por ejemplo:

    https://gateway-12345-uc.a.run.app
  2. Edita la especificación de OpenAPI para establecer la propiedad host (en OpenAPI 2.0) o servers.url (en OpenAPI 3.x) en el nombre de dominio de la URL de Vertex AI Search o ESPv2 Beta. Por ejemplo:

    host: gateway-12345-uc.a.run.app
  3. Implementa la definición de OpenAPI en Vertex AI Search o en ESPv2 Beta.

  4. Accede a tu API con la URL de Vertex AI Search o ESPv2 Beta. En las definiciones de OpenAPI anteriores, el elemento paths se establece en /hello para que puedas acceder a esta API con la siguiente URL:

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

Si deseas usar la misma definición de API para crear una configuración de API para API Gateway, puedes borrar la propiedad host o servers.url 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 manera:

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 implementaste la API y REGION_CODE es el código de la regiónGoogle Cloud 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 la definición de tu API, consulta Descripción general de OpenAPI.

¿Qué sigue?