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.xmlmit den Abhängigkeiten von Endpoints Frameworks und von der Google API-Clientbibliothek. Die Datei- readme.htmlenthält detaillierte Informationen darüber, was Sie je nach Art der Clientanwendung jeweils der Datei- pom.xmlhinzufügen müssen und wie Sie mit Maven eine Clientbibliothek für Ihre API erstellen.
- Gradle: Dieses Bundle enthält die Datei - build.gradlemit den Abhängigkeiten von Endpoints Frameworks und von der Google API-Clientbibliothek. Die Datei- readme.htmlenthält detaillierte Informationen darüber, was Sie je nach Art der Clientanwendung jeweils der Datei- build.gradlehinzufü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 Datei- readme.htmlsind 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.yamlsowie Ihre API-Dienstklassen gespeichert sind. Sie können mit der Option- --applicationauch 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 - maindie Klasse mit Ihrer API und- EchoApider 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_LANGgibt den Typ des Client-Bundles an, das Sie erstellen möchten. Derzeit ist für Java-Clients wie Android der Wert- javaerforderlich.
- OPTIONS, falls verfügbar, sind ein oder mehrere in der Tabelle "Optionen" angezeigte Elemente.
- CLASS_NAMEist 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.yamlund 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 gradlean, für ein Maven-Client-Bundlemavenund 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 rootURLfest.Diese Option überschreibt den Standardwert, der aus dem application-Eintrag im Backend API-Projektapp.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 localhostals rootURL für lokale Tests an. | --hostname localhost | 
| format | Geben Sie hierfür nichts an, da nur der Standardwert restfü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