Pour que votre API soit gérée par Cloud Endpoints, vous disposez de trois options en fonction de son emplacement et du type de protocole de communication utilisé :
- Cloud Endpoints pour OpenAPI
- Cloud Endpoints pour gRPC
- Cloud Endpoints Frameworks pour l'environnement standard App Engine
Cette page décrit les options Cloud Endpoints pour vous aider à choisir celle qui vous convient le mieux.
Choisir une option de calcul
Pour héberger le code backend de votre API sur Google Cloud, Endpoints propose différentes options de calcul. Endpoints assure la gestion des API à l'aide d'Extensible Service Proxy (ESP) ou d'Extensible Service Proxy V2 (ESPv2). Ces options sont récapitulées dans le tableau suivant :
ESP pour OpenAPI | ESP pour gRPC | ESPv2 pour OpenAPI | ESPv2 pour gRPC | Endpoints Frameworks | |
---|---|---|---|---|---|
Environnement standard de génération 1 App Engine |
Environnements d'exécution Java 8 et Python 2.7 | ||||
Environnement standard de génération 2 App Engine |
|||||
Environnement flexible App Engine |
|||||
Fonctions Cloud Run | |||||
Cloud Run | |||||
Knative serving | |||||
Compute Engine | |||||
GKE | |||||
Kubernetes | |||||
Options autres que Google Cloud |
Pour obtenir une comparaison des fonctionnalités fournies par App Engine, GKE et Compute Engine, consultez la section Choisir une option de calcul. Si vous envisagez d'utiliser App Engine, vous devez choisir entre l'environnement standard ou flexible. Pour comparer les deux environnements, consultez la section Choisir un environnement App Engine.
À propos des limites des options de calcul
Endpoints pour OpenAPI et Endpoints pour gRPC peuvent utiliser ESP ou ESPv2 en guise de proxy. Pour les plates-formes autres que sans serveur, ESP ou (ESPv2) est déployé en guise de conteneur devant votre application ou en tant que side-car de votre application. Pour les plates-formes sans serveur, telles que Cloud Run, les fonctions Cloud Run et App Engine, ESPv2 est déployé en tant que service Cloud Run en tant que proxy distant pour gérer vos applications de plate-forme sans serveur.
Une fois que vous avez déployé le code de backend de votre API, ESP ou ESPv2 intercepte toutes les requêtes et effectue les vérifications nécessaires, telles que l'authentification, avant de transmettre ces requêtes au backend de l'API. Lorsque le système répond, ESP rassemble et consigne les données de télémétrie à l'aide de l'infrastructure de service.
Vous pouvez afficher les métriques de votre API ainsi que les liens vers les journaux et les traces de l'observabilité Google Cloud sur la page Services Endpoints de la console Google Cloud.
Limites de l'environnement standard App Engine de génération 1
Endpoints pour l'environnement standard App Engine de génération 1 a toujours utilisé historiquement Endpoints Frameworks, qui n'accepte que les environnements d'exécution Java 8 et Python 2.7.
Étant donné que l'environnement standard App Engine n'acceptait pas les déploiements multiconteneurs lorsque Endpoints Frameworks était en cours de développement, ce dernier ne fait pas appel au proxy ESP. Endpoints Frameworks comprend ainsi une passerelle API intégrée qui fournit des fonctionnalités de gestion des API comparables à celles fournies par ESP pour Cloud Endpoints pour OpenAPI et Cloud Endpoints pour gRPC.
Les API gRPC ne sont pas compatibles avec les fonctions App Engine ou Cloud Run.
gRPC est un framework d'appel de procédure à distance (RPC, Remote Procedure Call) qui peuvent s'exécuter dans n'importe quel environnement. gRPC permet à une application cliente d'appeler directement des méthodes dans une application serveur sur un ordinateur différent, comme s'il s'agissait d'un objet local. Une fonctionnalité essentielle de gRPC est la diffusion bidirectionnelle en continu par transport basé sur HTTP/2.
Les fonctions App Engine et Cloud Run ne sont pas compatibles avec HTTP/2.
Langages de programmation compatibles
- La Spécification OpenAPI est une spécification indépendante de la langue. Vous pouvez mettre en œuvre votre API dans n'importe quel langage de programmation.
- gRPC fournit le compilateur de tampon de protocole
protoc
pour les principaux langages de programmation : C++, C#, Objective-C (pour iOS), Dart, Go, Java (y compris pour Android), Node.js, Python et Ruby. Consultez le Questions fréquentes sur gRPC pour consulter la liste la plus récente. - Endpoints Frameworks n'est disponible que pour Java 8 et Python 2.7.
Décrire votre API
Cloud Endpoints propose différentes manières de décrire votre API selon l'option choisie.
Cloud Endpoints pour OpenAPI
L'OpenAPI Initiative répond à une volonté conjointe des entreprises du secteur de standardiser la description des API REST. Endpoints accepte les API décrites avec la version 2.0 de la spécification OpenAPI (anciennement spécification Swagger). Vous décrivez la surface de votre API dans un fichier JSON ou YAML, appelé "document OpenAPI". Pour mettre en œuvre votre API, vous pouvez utiliser n'importe quel framework REST accessible au public, tel que Django ou Jersey. Si vous ne connaissez pas la spécification OpenAPI, consultez la section Présentation d'OpenAPI.
Pour en savoir plus, consultez la page Cloud Endpoints pour OpenAPI.
Cloud Endpoints pour gRPC
Avec gRPC, vous définissez la structure des données que vous souhaitez sérialiser dans un fichier proto, à savoir un fichier texte ordinaire portant l'extension .proto
. Vous avez également
définir le
surface
de votre API dans des fichiers proto, avec des paramètres de méthode RPC et des types renvoyés
spécifiés en tant que messages de tampon de protocole. Si vous ne connaissez pas gRPC, consultez
Qu'est-ce que gRPC ?
dans la documentation correspondante.
Pour plus d'informations, consultez la page Cloud Endpoints pour gRPC.
Endpoints Frameworks
Endpoints Frameworks est un framework Web pour les environnements d'exécution Python 2.7 et Java 8 dans l'environnement standard App Engine. Ajoutez des métadonnées à votre code source à l'aide d'annotations en Java ou de décorateurs en Python. Les métadonnées décrivent les surface des API REST pour votre application.
Pour en savoir plus, consultez la page Endpoints Frameworks.
Étape suivante
Découvrez les fonctionnalités d'Endpoints en action à l'aide du guide de démarrage rapide d'Endpoints, qui utilise des scripts pour déployer un exemple d'API dans l'environnement flexible App Engine.
Familiarisez-vous avec les étapes de déploiement en suivant l'un des tutoriels correspondant à l'option Cloud Endpoints que vous avez choisie :
Consultez ces pages pour en savoir plus sur Cloud Endpoints et ESP :