Abfragesprache für APIs
RGeschrieben vonRiku Virtanen Vor über einer Woche aktualisiertTable of contentsGraphQL-APIs nutzen
Eine kurze Zusammenfassung der GraphQL-APIs
GraphQL ist eine Abfragesprache für APIs, die es dem Client ermöglicht, die Struktur der benötigten Daten zu bestimmen. Der Client sendet die strukturierte Abfrage immer mit HTTP POST an einen bestimmten Endpunkt und der Server gibt JSON-Daten entsprechend der Abfrage zurück. Dies gibt dem Client mehr Freiheit und Macht über die Verwendung, erfordert aber im Gegenzug mehr Wissen und Verantwortung für die Verwendung des Endpunkts.
So nutzen Sie GraphQL-APIs
Da GraphQL-APIs JSON-Daten zurückgeben, wird empfohlen, dieRestRequestAufgabe zum Nutzen eines automatisch deserialisierten Hauptteils für eine einfachere Referenzierung später im Prozess.
Die Nutzung von GraphQL-APIs unterscheidet sich in vier Details von der Nutzung von REST-APIs:
Der Serverendpunkt oder die URI bleibt bei GraphQL immer gleich
Die HTTP-Methode ist immer POST
Die Anforderungsnutzlast enthält die GraphQL-Abfrage
Abhängig vom Abfrageformat kann dieInhaltstypHTTP-Header variiert
Sehen wir uns ein Beispiel für die Verwendung einer GraphQL-API mit diesen vier Details an.
In unserem Beispiel verwenden wir die GraphQL-API der regionalen Verkehrsbehörde von Helsinki, um Wegbeschreibungen zwischen zwei Koordinaten mithilfe öffentlicher Verkehrsmittel zu erhalten. Außerdem bieten GraphQL-API-Dienstanbieter manchmal eine Benutzeroberfläche zum Erkunden und Testen der GraphQL-API selbst an, und eines dieser Tools heißt GraphiQL. In diesem Fall können wir verwendenGraphiQLfür dieselbe API zu Testzwecken und um herauszufinden, wie die Abfrage funktionieren würde.
Der zu verwendende Endpunkt isthttps://api.digitransit.fi/routing/v1/routers/hsl/index/graphqlund vom GraphiQL-Tool aus können wir unsere Nutzlast wie im Bild unten bestimmen.
Wir können diese Nutzlast kopieren und einfügen inRestRequestFeld „Aufgabennachricht“ und Festlegen des HTTP-Header-Inhaltstyps: application/graphql.
Jetzt haben wir alle benötigten Parameter für dieRestRequestAufgabe, die wie folgt aussehen würde:
Und natürlich könnten wir je nach Anwendungsfall beispielsweise die Koordinaten aus Variablen oder vorherige Task-Ergebnisse zur dynamischen Lösung referenzieren.
Eine Möglichkeit, eine GraphQL-Abfrage in der HTTP-Anforderungsnutzlast darzustellen, besteht darin, ein JSON mit der Eigenschaft query und seinem Zeichenfolgenwert als GraphQL-Abfrage zu verwenden. Beachten Sie, dass die HTTP-Header jetzt Content-Type: application/json sein müssen und die Zeichenfolge als Einzeiler mit möglichen Escape-Zeichen dargestellt werden muss. Für dieselbe Abfrage wie oben würde dies folgendermaßen aussehen:
Ausnahmebehandlung mit GraphQL-APIs
Die Ausnahmebehandlung von GraphQL-APIs sollte auf denselben Praktiken basieren wie bei REST-APIs oder SOAP-Diensten, da die Funktionalität aus Sicht der HTTP-Anforderung dieselbe ist.
Zusammenfassung zur Nutzung von GraphQL-APIs mit Frends
VerwendenRestRequestAufgabe
Der Endpunkt bleibt immer derselbe, ebenso wie die Methode als POST
Die Nutzlast kann als GraphQL-Abfrage oder als JSON formatiert werden, wobei die GraphQL-AbfrageAbfrageWert der Immobilie
Behandeln Sie Ausnahmen wie jeden anderen Anwendungsfall für die HTTP-Integration.
Der nächste Artikel istEinführung in andere Techniken für HTTP-Anfragen
Verwandte ArtikelEinführung in Integrationen mit HTTPEinführung in die Nutzung von REST-APIsEinführung in die Nutzung von SOAP-DienstenEinführung in andere Techniken für HTTP-AnfragenEinführung in die Authentifizierung in HTTP-Integrationen