Nur DataPower-API-Gateway

Kostenendpunkt für eine GraphQL-API aktivieren

Wenn Sie den Endpunkt /graphql/cost beim Erstellen einer GraphQL-Proxy-API aktivieren, kann eine aufrufende Anwendung Details zu den Kosten für die Ausführung einer Anforderung auf dem Back-End-GraphQL-Server abrufen, bevor die tatsächliche Back-End-Anforderung gesendet wird.

Die Kosten beziehen sich nicht nur auf die rein finanziellen Kosten, sondern können Faktoren wie Rechenzeit, Speicherbedarf und andere Faktoren berücksichtigen, und zwar zusätzlich zu den tatsächlichen finanziellen Kosten, die z. B. für die Verwendung von Systemen anderer Anbieter zum Abrufen von Daten anfallen.

Vor allem in einer Produktionsumgebung sollten Sie sorgfältig die Auswirkungen auf die Ressourcen berücksichtigen, die sich aus der Bereitstellung dieses Pfads ergeben. Beachten Sie jedoch, dass die Aktivierung des Endpunkts /graphql/cost automatisch eine Richtlinienkonfiguration in Ihrer API-Assembly generiert, die manuell erstellt werden muss, wenn Sie diese Option inaktivieren und später entscheiden, dass sie erforderlich ist. Weitere Informationen finden Sie im Abschnitt API-Assembly-Richtlinien für den Kostenendpunkt .

API-Assemblyrichtlinien für den Kostenendpunkt

In diesem Abschnitt wird die Konfiguration der API-Assemblyrichtlinie beschrieben, die automatisch generiert wird, wenn der Operationspfad /graphql/cost ausgewählt wird, wenn eine GraphQL-Proxy-API erstellt wird. Wenn der Pfad bei der Erstellung nicht ausgewählt wird und Sie später entscheiden, dass Sie ihn aktivieren möchten, müssen Sie ihn manuell zur API-Assembly hinzufügen.

Ein Fall (case) mit der folgenden Bedingung wird zu einer switch-Richtlinie hinzugefügt:
($operationPath() = '/graphql/cost' and message.attributes.parse.GraphQLIntrospection = 'not-introspection')
Wenn die Bedingung wahr (true) ist, werden die folgenden Richtlinien nacheinander ausgeführt, wobei die Eigenschaftseinstellungen wie angegeben definiert sind:
Ratenbegrenzung
Eigenschaft Wert
Quelle Plan nach Name
Name der Ratenbegrenzung graphql-design-request
Operation Verarbeiten
Validieren
Eigenschaft Wert
Eingabe Nachricht
Ausgabe Kein Wert, standardmäßig die Eingabe
Validieren mit GraphQL
Variable festlegen
Eigenschaft Wert
Aktion Festlegen
Festlegen message.body
Typ beliebig
Wert $(message.attributes.graphql)
Die automatisch generierte Konfiguration, wie sie in der Benutzeroberfläche der Baugruppe angezeigt wird, sieht wie folgt aus:
Screenshot mit der Assemblierungskonfiguration für den Kostenendpunkt