Déployer les API Cloud Endpoints sur API Gateway

Cloud Endpoints est un Système de gestion d'API qui vous aide à sécuriser, surveiller, analyser et définir des quotas sur vos API. Cloud Endpoints utilise Extensible Service Proxy (ESP) ou Extensible Service Proxy v2 bêta (ESPv2 bêta) pour héberger vos API.

Lorsque vous utilisez Endpoints, vous disposez de trois options pour définir votre API :

Développer des API avec API Gateway

API Gateway accepte les API décrites à l'aide de la spécification OpenAPI, 2,0. Cela signifie que vous pouvez déployer vos spécifications OpenAPI depuis Endpoints sur API Gateway.

Déployer les spécifications OpenAPI d'Endpoints sur API Gateway

API Gateway accepte les mêmes options et format de définition de spécification OpenAPI comme compatible avec Cloud Endpoints pour OpenAPI. Cela signifie que vous pouvez utiliser les mêmes définitions de sécurité, quota et autres Spécifications OpenAPI d'Endpoints pour définir une API dans API Gateway

La seule différence entre Endpoints et API Gateway réside dans la façon dont ils traitent la propriété host dans la définition de spécification OpenAPI :

  • Dans Endpoints, définissez la propriété host sur la partie nom d'hôte de l'URL créée lors du déploiement d'ESP, où ESP est le service utilisé pour héberger l'API Endpoints.
  • Dans API Gateway, omettez la host ou le définir sur le nom DNS de l'API déployée. les fournisseurs d'API le définissent souvent sur le nom DNS lorsqu'ils partagent la spécification OpenAPI avec les utilisateurs des API. Cependant, API Gateway n'applique pas la valeur de host .

L'exemple ci-dessous est une partie d'une spécification OpenAPI utilisée par Endpoints. Pour définir une API permettant d'accéder à un service de backend déployé sur des fonctions 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:
  ...

Pour Cloud Endpoints :

  1. Déployez ESP, qui crée l'URL que vous utiliserez ensuite pour accéder aux API déployées sur ESP. Exemple :

    https://gateway-12345-uc.a.run.app
  2. Modifiez la spécification OpenAPI pour définir la propriété host sur le nom de domaine de l'URL ESP. Exemple :

    host: gateway-12345-uc.a.run.app
  3. Déployer la spécification OpenAPI sur ESP.

  4. Accédez à votre API à l'aide de l'URL ESP. Dans la spécification OpenAPI ci-dessus, l'élément paths est défini sur /hello. Vous pouvez donc accéder à cette API à l'aide de l'URL suivante:

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

Comme vous pouvez le voir, pour Endpoints, vous devez d'abord déployer ESP pour pouvoir définir la valeur de la propriété host.

Pour utiliser cette définition d'API afin de créer une configuration d'API pour API Gateway, vous pouvez soit supprimer entièrement la propriété host, soit la laisser dans le fichier. API Gateway n'applique pas la valeur de la propriété host.

L'URL de la passerelle déployée, et donc de l'URL que vos clients utilisent pour accéder à votre API, est définie lorsque vous créez la passerelle, au format suivant :

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

GATEWAY_ID est le nom de la passerelle, HASH est le code de hachage unique généré lors du déploiement de l'API et REGION_CODE est le code de la région GCP où vous avez déployé la passerelle.

Une fois que vous avez déployé une API sur une instance de passerelle, l'URL que vous utilisez pour accéder à /hello est la suivante :

https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello

Pour en savoir plus sur le déploiement d'API, consultez la page Modèle de déploiement de passerelle API.

Pour en savoir plus sur la création de la spécification OpenAPI pour la définition de votre API, consultez la page Présentation d'OpenAPI.

Étape suivante