Choisir une option Cloud Endpoints

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é :

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 App Engine ni avec Cloud Run Functions.

gRPC est un framework d'appel de procédure à distance (RPC, Remote Procedure Call) pouvant s'exécuter sur 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 du langage. 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 les questions fréquentes sur gRPC pour obtenir la liste actualisée.
  • 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 définissez également la surface de votre API dans des fichiers proto, en spécifiant les paramètres de méthode RPC et les types de renvoi en tant que messages de tampon de protocole. Si vous ne connaissez pas gRPC, consultez la page 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 la surface des API REST pour votre application.

Pour en savoir plus, consultez la page Endpoints Frameworks.

Étape suivante