Déployer des 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 :
- Cloud Endpoints pour OpenAPI
- Cloud Endpoints pour gRPC
- Cloud Endpoints Frameworks pour l'environnement standard App Engine
Développer des API avec API Gateway
API Gateway est compatible avec les API décrites à l'aide de la spécification OpenAPI, version 2.0. Cela signifie que vous pouvez déployer vos spécifications OpenAPI à partir d'Endpoints sur API Gateway.
Déployer les spécifications Endpoints OpenAPI sur API Gateway
API Gateway est compatible avec le même format de définition de spécification et les mêmes options que ceux compatibles avec Cloud Endpoints pour OpenAPI. Cela signifie que vous pouvez utiliser les mêmes définitions de sécurité, de quota et autres que celles de vos spécifications OpenAPI 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 Cloud 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 votre API Endpoints. Dans API Gateway, omettez
host
ou définissez-le sur le nom DNS de l'API déployée. Les fournisseurs d'API la définissent souvent sur le nom DNS lorsqu'ils partagent la spécification OpenAPI avec leurs utilisateurs d'API. Cependant, API Gateway n'applique pas la valeur de la propriétéhost
.
L'exemple ci-dessous montre une partie d'une spécification OpenAPI utilisée par Endpoints pour définir une API afin d'accéder à un service de backend déployé sur 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: ...
Pour Cloud Endpoints :
Déployez le proxy ESP, qui crée l'URL que vous utilisez ensuite pour accéder aux API déployées sur le proxy ESP. Exemple :
https://gateway-12345-uc.a.run.app
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
Déployez la spécification OpenAPI sur ESP.
Accédez à l'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 constater, pour Cloud Endpoints, vous devez d'abord déployer le proxy ESP afin de pouvoir définir la valeur de la propriété host
.
Si vous souhaitez 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
où 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 des API, consultez la page Modèle de déploiement de la passerelle API.
Pour savoir comment créer la spécification OpenAPI pour la définition de votre API, consultez Présentation d'OpenAPI.