Puoi generare bundle di librerie client che consentono alle applicazioni di accedere all'API utilizzando lo strumento a riga di comando di Endpoints Frameworks. Quando generi una libreria client, lo strumento a riga di comando di Endpoints Frameworks genera automaticamente un documento di rilevamento che descrive la superficie della tua API.
Lo strumento a riga di comando di Endpoints Frameworksendpointscfg.py
è disponibile nella libreria di Endpoints Frameworks. Per informazioni sull'installazione della libreria di Endpoints Frameworks utilizzando pip
, vedi Installazione della libreria di Endpoints Frameworks.
Tieni presente che i comandi seguenti presuppongono che la libreria
dei framework degli endpoint sia stata installata 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 di Endpoints Frameworks sul codice campione.
Generazione di un bundle di libreria client da un'API
Puoi utilizzare lo strumento a riga di comando di 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 filereadme.html
fornisce informazioni dettagliate su ciò che devi aggiungere al filepom.xml
per diversi tipi di applicazioni client e su come creare una libreria client per la tua API utilizzando Maven.Gradle: questo pacchetto include un file
build.gradle
con le dipendenze dei framework degli endpoint e delle dipendenze delle librerie client delle API di Google. Il filereadme.html
fornisce informazioni dettagliate su ciò che devi aggiungere al tuo filebuild.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 di dipendenze e il file
source.jar
generato, che è la libreria Java che utilizzi nel client per chiamare l'API. Questo pacchetto fornisce al client tutte le funzionalità della libreria client delle API di Google, tra cui OAuth. Il filereadme.html
elenca i file.jar
necessari per 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 in corso...
Per generare la libreria client:
Cambia la directory nella directory contenente il file
app.yaml
dell'API e le classi di servizio API. In alternativa, utilizza l'opzione--application
per specificare qualche altra posizione della directory dell'applicazione.Richiama lo strumento a riga di comando di Endpoints Frameworks in modo simile al seguente:
lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
dove
main
è la classe contenente l'API eEchoApi
è il nome dell'API.Attendi che lo strumento generi la libreria client. In caso di esito positivo, lo strumento visualizza un messaggio simile a questo:
API client library written to ./echo-v1.zip
Aggiungi la libreria client JAR alla tua app per Android.
Ripeti i passaggi precedenti ogni volta che modifichi il codice dell'API.
Il pacchetto della libreria client viene scritto nella directory attuale, a meno che non specifichi 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 valorejava
(per client Java come Android).OPTIONS
, se fornito, è uno o più elementi mostrati nella tabella delle opzioniCLASS_NAME
è il nome completo della classe della tua API.
Opzioni
Puoi utilizzare le seguenti opzioni:
Nome opzione | Descrizione | Esempio |
---|---|---|
application |
Per impostazione predefinita, lo strumento viene generato dall'API di backend nella directory corrente. Se vuoi generare utilizzando una directory diversa, specifica il percorso della directory contenente app.yaml e le classi di servizio che implementano l'API. |
--application /my_path/my_api_dir |
build-system |
Consente di specificare il tipo di bundle client da generare. Specifica gradle per un bundle client Gradle per Android, maven per un bundle client Maven oppure default (o ometti semplicemente questa opzione) per un bundle che contiene solo le librerie delle dipendenze e il 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 dell'API di backend app.yaml ([YOUR_APP_ID].appspot.com ) e da hostname definito nel decoratore per l'API.Un esempio 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 è il valore predefinito, rest per REST. |
Non necessario, utilizza l'impostazione predefinita. |
output |
Imposta la directory in cui viene scritto l'output. Predefinito: la directory da cui viene richiamato lo strumento. |
--output /mydir -o /mydir |
Piattaforme client supportate
Nel bundle client prodotto dallo strumento a riga di comando di Endpoint Frameworks sono supportate le seguenti piattaforme:
- Java 7 e versioni successive:
- Android 1.6 e versioni successive.
- App Engine.
Generazione di un documento OpenAPI da un'API
Lo strumento endpointscfg.py
fornisce un comando per generare un documento OpenAPI dal backend di un'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'esempio echo
:
$ lib/endpoints/endpointscfg.py get_openapi_spec --hostname=echo-example.appspot.com main.EchoApi
OpenAPI spec written to ./echov1openapi.json