Strumento a riga di comando Cloud Endpoints Frameworks per App Engine

Questa pagina descrive come utilizzare lo strumento a riga di comando Endpoints Frameworks per generare una libreria client dall'API di backend Python (il codice che viene eseguito sul server). Qualsiasi app Java o Android può utilizzare questa libreria per chiamare l'API.

Puoi generare bundle di librerie client che consentono alle applicazioni di accedere alla tua API utilizzando lo strumento a riga di comando Endpoints Frameworks. Quando generi una libreria client, lo strumento a riga di comando Endpoints Frameworks genera automaticamente un documento di rilevamento che descrive la superficie della tua API.

Lo strumento a riga di comando Endpoints Frameworks,endpointscfg.py è disponibile nella libreria Endpoints Frameworks. Per informazioni sull'installazione della libreria Endpoints Frameworks utilizzando pip, vedi Installare la libreria Endpoints Frameworks. Tieni presente che i seguenti comandi presuppongono che tu abbia installato la libreria Endpoints Frameworks in una directory denominata lib. Inoltre, le istruzioni presuppongono che tu abbia creato l'API di backend. Consulta il tutorial su Endpoints Frameworks per Python per un esempio di utilizzo dello strumento a riga di comando Endpoints Frameworks su un codice campione.

Generare un bundle di librerie client da un'API

Puoi utilizzare lo strumento a riga di comando Endpoints Frameworks per generare i seguenti tipi di bundle client:

  • Maven: questo bundle include un file pom.xml con le dipendenze di Endpoints Frameworks e della libreria client delle API di Google. Il file readme.html fornisce informazioni dettagliate su cosa devi aggiungere al file pom.xml per diversi tipi di applicazioni client e su come creare una libreria client per la tua API utilizzando Maven.

  • Gradle: questo bundle include un file build.gradle con le dipendenze di Endpoints Frameworks e della libreria client delle API di Google. Il file readme.html fornisce informazioni dettagliate su cosa devi aggiungere al file build.gradle per diversi tipi di applicazioni client e su come creare una libreria client per la tua API utilizzando Gradle.

  • Bundle client predefinito: questo bundle contiene tutte le librerie delle dipendenze e il file source.jar generato, ovvero la libreria Java che utilizzi nel client per chiamare l'API. Questo bundle fornisce al client tutte le funzionalità della libreria client delle API di Google, incluso OAuth. Il file readme.html elenca i file .jar necessari per i diversi tipi di applicazioni client e altri dettagli per l'utilizzo della libreria client.

Se utilizzi la libreria client con un'app per Android, ti consigliamo di utilizzare un bundle client Gradle.

Generazione della libreria client

Per generare la libreria client:

  1. Passa alla directory contenente il file app.yaml e le classi di servizio API della tua API. In alternativa, utilizza l'opzione --application per specificare un'altra posizione della directory dell'applicazione.

  2. Invoca lo strumento a riga di comando Endpoints Frameworks in modo simile a quanto segue:

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

    dove main è la classe contenente la tua API e EchoApi è il nome della tua API.

  3. Attendi che lo strumento generi la libreria client. Se l'operazione va a buon fine, lo strumento mostra un messaggio simile a questo:

    API client library written to ./echo-v1.zip
    
  4. Aggiungi il file JAR della libreria client alla tua app per Android.

  5. Ripeti i passaggi precedenti ogni volta che modifichi il codice API.

Il bundle della libreria client viene scritto nella directory corrente, a meno che tu non specifiche un'altra directory di output utilizzando l'opzione output.

Sintassi della riga di comando

La sintassi di base è la seguente:

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

dove:

  • TARGET_LANG specifica il tipo di bundle client che vuoi creare. Al momento, devi fornire il valore java (per client Java come Android).
  • OPTIONS, se fornito, è uno o più elementi mostrati nella tabella Opzioni
  • CLASS_NAME è il nome di classe completo della tua API.

Opzioni

Puoi utilizzare le seguenti opzioni:

Nome opzione Descrizione Esempio
application Per impostazione predefinita, lo strumento genera dall'API di backend nella directory corrente.
Se vuoi generare utilizzando una directory diversa, specifica il percorso della directory contenente le classi app.yaml e di servizio che implementano la tua API.
--application /my_path/my_api_dir
build-system Consente di specificare il tipo di bundle client da produrre. Specifica gradle per un bundle client Gradle per Android, maven per un bundle client Maven o default (o ometti semplicemente questa opzione) per un bundle che contiene solo le librerie delle dipendenze e il file jar di origine. --build-system=gradle
-bs gradle
hostname Specifica il documento di rilevamento rootURL.
Questa opzione sostituisce il valore predefinito derivato dalla voce application all'interno del progetto API di backend app.yaml ([YOUR_APP_ID].appspot.com) e hostname definito nel decoratore per l'API.
Un utilizzo di questa opzione è fornire il nome host localhost come rootURL per i test locali.
--hostname localhost
format Non specificare questo valore perché l'unico valore supportato è quello predefinito, rest per REST. Non necessario, utilizza il valore predefinito.
output Imposta la directory in cui viene scritto l'output.
Valore predefinito: la directory da cui viene richiamato lo strumento.
--output /mydir
-o /mydir

Piattaforme client supportate

Le seguenti piattaforme sono supportate nel bundle client prodotto dallo strumento a riga di comando Endpoints Frameworks:

Generazione di un documento OpenAPI da un'API

Lo strumento endpointscfg.py fornisce un comando per generare un documento OpenAPI da un backend API. La sintassi del comando è:

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.

Ad esempio, utilizzando l'echoesempio:

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