Sie können Clientbibliothek-Bundles generieren, mit denen Anwendungen über das Endpoints Frameworks-Befehlszeilentool auf Ihre API zugreifen können. Wenn Sie eine Clientbibliothek generieren, erstellt das Endpoints Frameworks-Befehlszeilentool automatisch ein Discovery-Dokument, in dem die Oberfläche Ihrer API beschrieben wird.
Das Endpoints Frameworks-Befehlszeilentool endpointscfg.py
ist in der Endpoints Frameworks-Bibliothek verfügbar. Informationen zur Installation der Endpoints Frameworks-Bibliothek mit pip
finden Sie unter Endpoints Frameworks-Bibliothek installieren.
Beachten Sie, dass die folgenden Befehle davon ausgehen, dass Sie die Endpoints Frameworks-Bibliothek in einem Verzeichnis namens lib
installiert haben. Außerdem wird in dieser Anleitung vorausgesetzt, dass Sie Ihre Back-End API erstellt haben. Wie das Endpoints Frameworks-Befehlszeilentools bei einem Beispielcode verwendet wird, wird in der Anleitung zu Endpoints Frameworks in Python beschrieben.
Clientbibliothek-Bundle von einer API generieren
Mit dem Endpoints Frameworks-Befehlszeilentool können Sie die folgenden Arten von Client-Bundles generieren:
Maven: Dieses Bundle enthält die Datei
pom.xml
mit den Abhängigkeiten von Endpoints Frameworks und von der Google API-Clientbibliothek. Die Dateireadme.html
enthält detaillierte Informationen darüber, was Sie je nach Art der Clientanwendung jeweils der Dateipom.xml
hinzufügen müssen und wie Sie mit Maven eine Clientbibliothek für Ihre API erstellen.Gradle: Dieses Bundle enthält die Datei
build.gradle
mit den Abhängigkeiten von Endpoints Frameworks und von der Google API-Clientbibliothek. Die Dateireadme.html
enthält detaillierte Informationen darüber, was Sie je nach Art der Clientanwendung jeweils der Dateibuild.gradle
hinzufügen müssen und wie Sie mit Gradle eine Clientbibliothek für Ihre API erstellen.Standard-Client-Bundle: Dieses Bundle enthält alle Abhängigkeitsbibliotheken und die generierte Datei
source.jar
. Dies ist die Java-Bibliothek, die Sie in Ihrem Client zum Aufrufen der API verwenden. Das Bundle bietet Ihrem Client alle Funktionen der Google API-Clientbibliothek, einschließlich OAuth. In der Dateireadme.html
sind die.jar
-Dateien aufgelistet, die für verschiedene Arten von Clientanwendungen jeweils erforderlich sind, sowie andere Details zur Verwendung der Clientbibliothek.
Wenn Sie die Clientbibliothek mit einer Android-App verwenden, empfiehlt sich ein Gradle-Client-Bundle.
Clientbibliothek generieren
So generieren Sie die Clientbibliothek:
Geben Sie das Verzeichnis an, in dem Ihre API-Datei
app.yaml
sowie Ihre API-Dienstklassen gespeichert sind. Sie können mit der Option--application
auch einen anderen Speicherort für Ihr Anwendungsverzeichnis festlegen.Das Endpoints Frameworks-Befehlszeilentool sollte in etwa so aufgerufen werden:
lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
Dabei ist
main
die Klasse mit Ihrer API undEchoApi
der API-Name.Warten Sie, bis die Clientbibliothek generiert wurde. Zur Bestätigung wird im Anschluss in etwa folgende Meldung eingeblendet:
API client library written to ./echo-v1.zip
Fügen Sie der Android-App die JAR-Datei der Clientbibliothek hinzu.
Wiederholen Sie die vorangegangenen Schritte bei jeder Änderung des API-Codes.
Das Clientbibliotheks-Bundle wird in das aktuelle Verzeichnis geschrieben, sofern Sie mit der Option output
kein anderes Ausgabeverzeichnis angeben.
Befehlszeilensyntax
Die grundlegende Syntax lautet:
/path-to/your-app/lib/endpointscfg.py get_client_lib TARGET_LANG OPTIONS CLASS_NAME
wobei
TARGET_LANG
gibt den Typ des Client-Bundles an, das Sie erstellen möchten. Derzeit ist für Java-Clients wie Android der Wertjava
erforderlich.OPTIONS
, falls verfügbar, sind ein oder mehrere in der Tabelle "Optionen" angezeigte Elemente.CLASS_NAME
ist der vollständig qualifizierte Klassenname Ihrer API.
Optionen
Sie haben die folgenden Möglichkeiten:
Option | Beschreibung | Beispiel |
---|---|---|
application |
Standardmäßig erfolgt die Generierung aus der Back-End API im aktuellen Verzeichnis. Wenn Sie ein anderes Verzeichnis für die Generierung verwenden möchten, geben Sie den Pfad zum Verzeichnis mit der Datei app.yaml und den Dienstklassen an, die Ihre API implementieren. |
--application /my_path/my_api_dir |
build-system |
Hiermit können Sie angeben, welcher Client-Bundle-Typ erstellt werden soll. Geben Sie für ein Gradle-Client-Bundle für Android gradle an, für ein Maven-Client-Bundle maven und für ein Bundle, das nur die Abhängigkeitsbibliotheken und die JAR-Quelldatei enthält, default (oder lassen Sie diese Option aus). |
--build-system=gradle -bs gradle |
hostname |
Legt das Discovery-Dokument rootURL fest.Diese Option überschreibt den Standardwert, der aus dem application -Eintrag im Backend API-Projekt app.yaml ([YOUR_APP_ID].appspot.com ) abgeleitet wird, und den im Decorator für Ihre API definierten .Mit dieser Option geben Sie unter anderem den Hostnamen localhost als rootURL für lokale Tests an. |
--hostname localhost |
format |
Geben Sie hierfür nichts an, da nur der Standardwert rest für REST unterstützt wird. |
Nicht erforderlich, Standardwert verwenden. |
output |
Legt das Verzeichnis fest, in das die Ausgabe geschrieben wird. Standardmäßig wird das Verzeichnis verwendet, in dem das Tool aufgerufen wurde. |
--output /mydir -o /mydir |
Unterstützte Clientplattformen
Die folgenden Plattformen werden in dem vom Endpoints Frameworks-Befehlszeilentool erstellten Client-Bundle unterstützt:
- Java 7 und höher:
- Android 1.6 und höher
- App Engine
OpenAPI-Dokument aus einer API generieren
Das endpointscfg.py
-Tool bietet einen Befehl zum Erzeugen eines OpenAPI-Dokuments aus einem API-Back-End. Die Befehlssyntax lautet:
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.
Verwenden Sie beispielsweise das echo
-Beispiel:
$ lib/endpoints/endpointscfg.py get_openapi_spec --hostname=echo-example.appspot.com main.EchoApi
OpenAPI spec written to ./echov1openapi.json