Outil de ligne de commande Cloud Endpoints Frameworks pour App Engine

Cette page explique comment utiliser la ligne de commande Endpoints Frameworks pour générer une bibliothèque cliente à partir de votre API backend Python (le code qui s'exécute sur le serveur). N'importe quelle application Java ou Android peut utiliser cette bibliothèque pour appeler l'API.

Vous pouvez générer des groupes de bibliothèques clientes permettant aux applications d'accéder à votre API à l'aide de l'outil de ligne de commande Endpoints Frameworks. Lorsque vous générez une bibliothèque cliente, l'outil de ligne de commande Endpoints Frameworks génère automatiquement un document de découverte décrivant la surface de votre API.

L'outil de ligne de commande Endpoints Frameworks, endpointscfg.py, est disponible dans la bibliothèque Endpoints Frameworks. Pour en savoir plus sur l'installation de la bibliothèque Endpoints Frameworks à l'aide de pip, consultez la section Installer la bibliothèque Endpoints Frameworks. Les commandes suivantes supposent que vous avez installé la bibliothèque Endpoints Frameworks dans un répertoire appelé lib. En outre, les instructions indiquées supposent que vous avez créé votre API backend. Consultez le tutoriel Endpoint Frameworks en Python pour obtenir un exemple d'utilisation de l'outil de ligne de commande Endpoints Frameworks sur un exemple de code.

Générer un groupe de bibliothèques clientes à partir d'une API

Vous pouvez utiliser l'outil de ligne de commande Endpoints Frameworks pour générer les types de groupes de clients suivants :

  • Maven : ce groupe comprend un fichier pom.xml avec les dépendances d'Endpoints Frameworks et de la bibliothèque cliente des API Google. Le fichier readme.html fournit des informations détaillées sur ce que vous devez ajouter à votre fichier pom.xml pour différents types d'applications clientes et explique comment créer une bibliothèque cliente pour votre API à l'aide de Maven.

  • Gradle : ce groupe comprend un fichier build.gradle avec les dépendances d'Endpoints Frameworks et de la bibliothèque cliente des API Google. Le fichier readme.html fournit des informations détaillées sur ce que vous devez ajouter à votre fichier build.gradle pour différents types d'applications clientes et explique comment créer une bibliothèque cliente pour votre API à l'aide de Gradle.

  • Groupe de clients par défaut : ce groupe contient toutes les bibliothèques de dépendances. Il comporte également le fichier source.jar généré, qui est la bibliothèque Java que vous utilisez dans votre client pour appeler votre API. Ce groupe fournit à votre client toutes les fonctionnalités de la bibliothèque cliente des API Google, y compris OAuth. Le fichier readme.html répertorie les fichiers .jar requis pour différents types d'applications clientes, ainsi que d'autres informations concernant l'utilisation de la bibliothèque cliente.

Si vous utilisez la bibliothèque cliente avec une application Android, nous vous recommandons d'opter pour un groupe de clients Gradle.

Générer la bibliothèque cliente

Pour générer la bibliothèque cliente :

  1. Remplacez le répertoire par celui qui contient le fichier app.yaml et les classes de service de l'API. L'option --application permet également de spécifier un autre emplacement pour le répertoire de l'application.

  2. Appelez l'outil de ligne de commande Endpoints Frameworks comme suit :

    lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
    

    main est la classe contenant votre API, et EchoApi est le nom de cette API.

  3. Patientez le temps que l'outil génère la bibliothèque cliente. Si l'opération aboutit, l'outil affiche un message semblable à celui-ci :

    API client library written to ./echo-v1.zip
    
  4. Ajoutez le fichier JAR de la bibliothèque cliente à l'application Android.

  5. Répétez les étapes ci-dessus chaque fois que vous modifiez le code de l'API.

Le groupe de bibliothèques clientes est écrit dans le répertoire en cours, sauf si vous spécifiez un autre répertoire de sortie à l'aide de l'option output.

Syntaxe de la ligne de commande

La syntaxe de base est la suivante :

/path-to/your-app/lib/endpointscfg.py get_client_lib TARGET_LANG OPTIONS CLASS_NAME

où :

  • TARGET_LANG spécifie le type de groupe de clients que vous souhaitez créer. Actuellement, vous devez indiquer la valeur java (pour les clients Java tels qu'Android).
  • Le paramètre OPTIONS, s'il est spécifié, correspond à un ou plusieurs éléments de la table d'options.
  • CLASS_NAME est le nom de classe complet de votre API.

Options

Vous pouvez utiliser les options suivantes :

Nom de l'option Description Exemple
application Par défaut, l'outil effectue la génération à partir de l'API backend dans le répertoire en cours.
Si vous souhaitez employer un autre répertoire, spécifiez le chemin d'accès au répertoire contenant le fichier app.yaml et les classes de service qui mettent en œuvre l'API.
--application /my_path/my_api_dir
build-system Permet de spécifier le type de groupe de clients à produire. Spécifiez gradle pour un groupe de clients Gradle pour Android, maven pour un groupe de clients Maven, ou default (ou omettez simplement cette option) pour un groupe ne contenant que les bibliothèques de dépendances et le fichier JAR source. --build-system=gradle
-bs gradle
hostname Spécifie la valeur rootURL du document de découverte.
Cette option remplace la valeur par défaut dérivée de l'entrée application dans le projet d'API backend app.yaml ([YOUR_APP_ID].appspot.com) et le hostname défini dans le décorateur de votre API.
Vous pouvez utiliser cette option pour indiquer le nom d'hôte localhost en tant que "rootURL" à des fins de tests en local.
--hostname localhost
format Ne spécifiez pas cette valeur, car la seule valeur acceptée est la valeur par défaut, rest pour REST. Pas nécessaire, utilisez la valeur par défaut.
output Définit le répertoire dans lequel la sortie est écrite.
Il s'agit par défaut du répertoire depuis lequel l'outil est appelé.
--output /mydir
-o /mydir

Plates-formes clientes compatibles

Les plates-formes compatibles avec le groupe de clients produit par l'outil de ligne de commande Endpoints Frameworks sont les suivantes :

Générer un document OpenAPI à partir d'une API

L'outil endpointscfg.py fournit une commande permettant de générer un document OpenAPI à partir d'un backend d'API. La syntaxe de la commande est la suivante :

lib/endpoints/endpointscfg.py get_openapi_spec
    [-h]
    [-a APPLICATION]
    [--hostname HOSTNAME]
    [-o OUTPUT]
    service [service ...]

positional arguments:
  service               Fully qualified service class name.

optional arguments:
  -h, --help            Show this help message and exit.
  -a APPLICATION, --application APPLICATION
                        The path to the Python App Engine application.
  --hostname HOSTNAME   Default application hostname, if none is specified for the API service.
  -o OUTPUT, --output OUTPUT
                        The directory to store output files.
  --x-google-api-name   Add the 'x-google-api-name' field to the generated OpenAPI document.

Par exemple, si l'on utilise l'exemple echo :

$ lib/endpoints/endpointscfg.py get_openapi_spec --hostname=echo-example.appspot.com main.EchoApi
OpenAPI spec written to ./echov1openapi.json