Cloud Endpoints Frameworks bietet API-Verwaltungsfunktionen, die mit den vom Extensible Service Proxy (ESP) für Cloud Endpoints bereitgestellten Funktionen vergleichbar sind. In Endpoints Frameworks ist ein API-Gateway eingebunden, das alle Anfragen abfängt und soweit notwendig überprüft, z. B. durch Authentifizierung, bevor sie an das API-Back-End weitergeleitet werden. Wenn das Back-End antwortet, erfasst und meldet Endpoints Frameworks telemetrische Messwerte. Sie können Messwerte für Ihre API auf der Seite Endpoints > Dienste in der Google Cloud Console ansehen.
In Endpoints Frameworks sind unter anderem die folgenden API-Verwaltungsfunktionen verfügbar:
Damit Ihre API von Endpoints verwaltet werden kann, müssen Sie ein OpenAPI-Dokument bereitstellen, das Ihre API mit Version 2.0 der OpenAPI-Spezifikation beschreibt. Auf dieser Seite wird beschrieben, wie Sie ein OpenAPI-Dokument generieren und bereitstellen, mit dem Endpoints Ihre API verwalten kann.
Wenn Sie keine API-Verwaltung hinzufügen, verarbeitet Ihre API zwar weiterhin Anfragen, allerdings ohne auf der Seite Endpoints > Dienste in der Google Cloud Console angezeigt zu werden. Die von Endpoints bereitgestellten Funktionen wie Logging, Monitoring und das Festlegen von Kontingenten stehen dann nicht zur Verfügung.
So fügen Sie der API Verwaltungsfunktionen hinzu:
Richten Sie Ihre Maven-Datei
pom.xml
oder Ihre Gradle-Dateibuild.gradle
wie in Konfigurieren der Build-Dateien beschrieben ein.Stellen Sie sicher, dass Sie die Google Cloud-Projekt-ID in den Build-Dateien festgelegt haben.
Maven
Suchen Sie nach
<endpoints.project.id>
und ersetzen SieYOUR_PROJECT_ID
durch Ihre Google Cloud-Projekt-ID. Beispiel:<endpoints.project.id>example-project-12345</endpoints.project.id>
Gradle
-
Suchen Sie nach
def projectId
und ersetzen SieYOUR_PROJECT_ID
durch Ihre Google Cloud-Projekt-ID. Beispiel:def projectId = 'example-project-12345'
- Achten Sie darauf, dass die Datei
build.gradle
die AufgabereplaceProjectId
enthält, mit der die Projekt-ID in den Dateienappengine-web.xml
undweb.xml
festgelegt wird.
-
Suchen Sie nach
Fügen Sie in der Datei
web.xml
Ihres API-Projekts die Servlet-Filterkonfiguration für die API-Verwaltung hinzu:Ändern Sie die Build-Konfiguration Ihres API-Projekts:
Maven
-
Fügen Sie die Abhängigkeiten der API-Verwaltung hinzu:
-
Fügen Sie das Plug-in ein, mit dem Sie Clientbibliotheken und das OpenAPI-Dokument
openapi.json
generieren können:
Gradle
-
Fügen Sie die Abhängigkeiten der API-Verwaltung hinzu:
-
Deklarieren Sie die externe Abhängigkeit, damit das Plug-in von Maven Central abgerufen wird:
-
Verwenden Sie das serverseitige Endpoints Frameworks-Plug-in, mit dem das OpenAPI-Dokument generiert wird:
-
Konfigurieren Sie den Namen Ihres Endpoints-Diensts:
-
Wenn Sie die Abhängigkeiten geändert haben, bereinigen Sie Ihr Projekt und erstellen Sie dann die API:
Maven
mvn clean mvn package
Gradle
gradle clean gradle build
Generieren Sie das OpenAPI-Dokument:
openapi.json
Maven
mvn endpoints-framework:openApiDocs
Gradle
gradle endpointsOpenApiDocs
Stellen Sie das OpenAPI-Dokument bereit:
gcloud endpoints services deploy openapi.json
Bei der ersten Bereitstellung von
openapi.json
wird ein neuer Endpoints-Dienst mit dem NamenYOUR_PROJECT_ID.appspot.com
erstellt. Bei erfolgreichem Abschluss des Vorgangs wird eine Zeile mit der Dienstkonfigurations-ID und dem Dienstnamen angezeigt, die etwa so aussieht:Service Configuration 2017-02-13r0 uploaded for service example-project-12345.appspot.com
Im vorherigen Beispiel ist
2017-02-13r0
die Dienstkonfigurations-ID. Die Dienstkonfigurations-ID besteht aus einem Datumsstempel, gefolgt von einer Überarbeitungsnummer. Wenn Sieopenapi.json
noch einmal bereitstellen, wird die Revisionsnummer in der Dienstkonfigurations-ID erhöht.Wenn Sie sich die Dienstkonfigurations-ID noch einmal anzeigen lassen müssen, führen Sie den folgenden Befehl aus, ersetzen dabei jedoch
YOUR_PROJECT_ID
durch die Projekt-ID Ihres Google Cloud-Projekts:gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com
Statt ein generiertes Dokument zu verwenden, können Sie ein eigenes OpenAPI-Dokument erstellen und bereitstellen. Ersetzen Sie
openapi.json
aus dem obigen Beispiel einfach durch den Pfad zu Ihrem OpenAPI-Dokument. Weitere Informationen zum Erstellen eines OpenAPI-Dokuments finden Sie unter OpenAPI-Übersicht.Bearbeiten Sie die Datei
appengine-web.xml
, um den Wert für eine Umgebungsvariable festzulegen:Ersetzen Sie
${endpoints.project.id}
durch Ihre Google Cloud-Projekt-ID. Beispiel:<env-var name="ENDPOINTS_SERVICE_NAME" value="example-project-12345.appspot.com" />
Stellen Sie die Anwendung neu bereit.
Maven
mvn appengine:deploy
Gradle
gradle appengineDeploy
Testen Sie die API mit einigen Anfragen.
Öffnen Sie zum Aufrufen der API-Messwerte in der Google Cloud Console für Ihr Projekt die Seite Endpoints > Dienste: