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. 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
Endpoints et API Gateway acceptent les API décrites à l'aide de la spécification OpenAPI, OpenAPI 2.0 ou OpenAPI 3.x. Si vous avez utilisé OpenAPI pour définir vos API Endpoints, cela signifie que vous pouvez également déployer vos API Endpoints sur API Gateway.
Déployer des spécifications OpenAPI Endpoints sur API Gateway
API Gateway est compatible avec le même format et les mêmes options de définition de spécification OpenAPI que Cloud Endpoints pour OpenAPI. Cela signifie que vous pouvez utiliser les mêmes définitions de sécurité, de quota et autres de vos spécifications OpenAPI 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é
hostsur la partie nom d'hôte de l'URL créée lorsque vous avez déployé ESP, où ESP est le service utilisé pour héberger votre API Endpoints. - Dans API Gateway, omettez
hostou définissez-le 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 leurs utilisateurs d'API. Toutefois, API Gateway n'applique pas la valeur de la propriétéhost.
Par exemple, voici une partie d'une définition OpenAPI utilisée par Endpoints pour définir une API afin d'accéder à un service de backend déployé sur 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: {} ...
Lorsque vous utilisez Endpoints pour déployer des API, vous :
Déployez Vertex AI Search ou ESPv2 bêta, ce qui crée l'URL que vous utiliserez ensuite pour accéder aux API déployées. Exemple :
https://gateway-12345-uc.a.run.app
Modifiez la spécification OpenAPI pour définir la propriété
host(dans OpenAPI 2.0) ouservers.url(dans OpenAPI 3.x) sur le nom de domaine de l'URL Vertex AI Search ou ESPv2 bêta. Exemplehost: gateway-12345-uc.a.run.app
Déployez la définition OpenAPI sur Vertex AI Search ou ESPv2 bêta.
Accédez à votre API à l'aide de l'URL Vertex AI Search ou ESPv2 bêta. Dans les définitions OpenAPI précédentes, l'élément
pathsest 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
Pour utiliser la même définition d'API afin de créer une configuration d'API pour API Gateway, vous pouvez supprimer entièrement la propriété host ou servers.url, ou la laisser dans le fichier.
La passerelle API 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 Google Cloud 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 Modèle de déploiement de la passerelle API.
Pour en savoir plus sur la création de la spécification OpenAPI pour votre définition d'API, consultez la présentation d'OpenAPI.