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 der Anleitung davon ausgegangen, 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
Dabei gilt:
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 den app.yaml - und 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 Generieren 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