Eine API ist ein RPC-Dienst (remote procedure call – Remoteprozeduraufruf), der für externe Clients zugängliche Remotemethoden bietet. Jede Back-End-API besteht aus einer RPC-Dienstklasse, die eine abgeleitete Klasse der Klasse ProtoRPC remote.Service
ist, und einer oder mehreren Methoden. Wenn Sie eine Methode definieren, müssen Sie auch Message
-Klassen für die an die Methode gehenden Anfragen und die von ihr zurückgegebenen Antworten definieren.
Eine Message
-Klasse führt eine Zuordnungsfunktion aus, damit die eingehenden Daten extrahiert und der Dienstmethode bzw. der ausgehenden Antwort ordnungsgemäß zugeordnet werden können.
Wenn eine Anfrage Pfad- oder Abfragestringargumente enthält, verwenden Sie statt einer einfachen Message
-Klasse eine ResourceContainer
-Klasse für die Zuordnung.
Abschließend müssen Sie die API-Dienstklasse und die Klassenmethoden mit Decorators versehen und Message
-Klassen für die Anfragen und Antworten definieren.
API erstellen
Im folgenden Verfahren wird gezeigt, wie Sie Ihren Code mit Decorators versehen, um eine API zu erstellen, die in eine einzelne Klasse implementiert ist. Wenn Sie eine API mit mehreren Klassen haben, erhalten Sie weitere Informationen unter Auf mehrere Klassen abgestimmte API erstellen. Ausführliche Informationen zu allen verfügbaren Decorators finden Sie unter Decorators.
So erstellen Sie eine API:
Fügen Sie die folgenden benötigten Importe hinzu:
Definieren Sie eine abgeleitete Klasse von
remote.Service
und versehen Sie sie mit dem Decorator@endpoints.api
:Beachten Sie, dass der Name der API und der Name der Dienstklasse nicht übereinstimmen müssen. Die Versionsnummer gilt für die Version der API. Der Wert, den Sie eingeben, wird Teil des Pfads in der URL zu Ihrer API. Weitere Informationen zu Versionen finden Sie unter API-Versionierung handhaben.
Ermitteln Sie, welche Daten Ihre Methode von der Anfrage erwartet und welche Daten geliefert werden. Dann erstellen Sie eine
Message
-Klasse für den Anfragetext und den Antworttext:Falls im Anfragetext keine Argumente enthalten sind (wie bei einer
GET
-Anfrage), können Sie dieMessage
-Klasse für die Anfrage weglassen und einfach den Wertmessage_types.VoidMessage
verwenden.Wenn die Anfrage Pfad- oder Abfragestringargumente enthält, ersetzen Sie die
Message
-Klasse durch einen geeignetenResourceContainer
.Ausführliche Informationen zum Erstellen und Verwenden von
Message
-Klassen finden Sie in der Dokumentation für die Antwort- und Anfrage-Message
-Klassen von Google Protocol RPC.Erstellen Sie die Methode für die API und versehen Sie die mit dem Decorator
@endpoints.method
:Wenn die Anfrage Pfad- oder Abfragestring-Daten enthält, ersetzen Sie die Nachrichtenklasse für die Anfrage durch einen geeigneten
ResourceContainer
.Fügen Sie den Code zum Bereitstellen der API wie unter Webserver erstellen beschrieben hinzu.