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

Por ejemplo, a continuación se muestra una parte de una especificación de OpenAPI que Endpoints usa para definir una API a fin de acceder a un servicio de backend implementado en Cloud 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, debes 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 configurar 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 el ESP.

  4. Accede a tu API con la URL del ESP. En la especificación de OpenAPI anterior, el elemento paths está configurado como /hello para que puedas acceder a esta API con la siguiente URL:

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

Como puedes ver, para Endpoints, primero debes implementar el ESP a fin de poder establecer 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 la 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.

Si quieres 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?