Nur DataPower-API-Gateway

GraphQL-Proxy-API erstellen

GraphQL ist eine Abfragesprache für APIs, die Anwendungsclients bessere Steuerungsmöglichkeiten darüber gibt, welche Daten in einer API-Anforderung abgerufen werden, verglichen mit einer REST-API-Anforderung. IBM® API Connect ermöglicht es Ihnen, eine GraphQL -API-Proxy-Definition zu erstellen, die einen GraphQL -Back-End-Server weiterleitet, und Steuerelemente für die Ratenbegrenzung zu definieren, die das Datenvolumen widerspiegeln, das von einer Anforderung an die GraphQL -API zurückgegeben wird.

Informationen zu dieser Task

Sie können diese Task entweder mithilfe der UI-Anwendung API Designer oder mithilfe der browserbasierten Benutzerschnittstelle von API Manager ausführen.

Um diese Task auszuführen, muss Ihnen eine Rolle zugeordnet sein, die über die Berechtigungen Api-Drafts:Edit, Settings:View und App:View verfügt. Die vorab bereitgestellte Entwicklerrolle weist diese Berechtigungen standardmäßig auf; wenn Ihnen eine angepasste Rolle zugeordnet wird, muss sie über diese Berechtigungen verfügen. Weitere Informationen finden Sie unter Angepasste Rollen erstellen.

GraphQL bietet die folgenden besonderen Vorteile gegenüber REST-APIs:

  • Der Anwendungsclient kann nur die Daten anfordern, die er benötigt. Wenn Sie beispielsweise Bankkontodatensätze abrufen, fordern Sie nur die Kontonummer und den aktuellen Kontostand für jedes Konto an, jedoch nicht den Kundennamen und die Adressdetails. Mit einer REST-API-Anforderung muss der REST-Service separate Endpunkte für verschiedene Datensätze bereitstellen.
  • Der Anwendungsclient kann mehrere zugehörige Ressourcen in einer einzelnen Anforderung abrufen. Beispiel: Ein Bankkontodatensatz eines Kunden kann ein Array enthalten, das auf andere Finanzprodukte verweist, die der Kunde hält. Wenn ein Anwendungsclient die Bankkontodetails für einen bestimmten Kunden abrufen möchte und Details zu den anderen Finanzprodukten für diesen Kunden, dann würde der Client mit einer REST-API zuerst die Bankkontodetails abrufen und anschließend separate Anforderungen für jedes der anderen Produkte erstellen. Eine GraphQL-API kann so konzipiert sein, dass der Client alle diese Informationen in einer einzigen Anforderung abrufen kann.

Diese Flexibilität bietet jedoch Ratenbegrenzungen, da zwei scheinbar sehr ähnliche Anforderungen möglicherweise sehr unterschiedliche Datenmengen zurückgeben und möglicherweise mehrere REST-API-Anforderungen erforderlich sind, die jeweils auf das Ratenlimit hin zählen, möglicherweise nur eine einzige GraphQL-API-Anforderung erfordern. Daher ist es wichtig, dass die Steuerratenbegrenzungssteuerelemente, die die Menge der abgerufenen Daten widerspiegeln, festgelegt werden. API Connect erweitert den GraphQL -Standard, indem es in einer GraphQL -API-Definition die Möglichkeit bereitstellt, einen Bereich von Einstellungen zu konfigurieren, die verwendet werden, um die Komplexität einer GraphQL -Anforderung und zugehörige Kosten zu berechnen, die auf die Ratenbegrenzung angerechnet werden.

Vorgehensweise

Führen Sie die folgenden Schritte durch, um eine GraphQL-API-Proxy-Definition zu erstellen:

  1. Klicken Sie im Navigationsbereich auf Symbol für Entwicklung im Navigationsfenster der API-Benutzerschnittstelle Entwickelnund anschließend auf Hinzufügen > API.
    Die Anzeige API-Typ auswählen wird angezeigt.
  2. Wählen Sie OpenAPI 2.0.
  3. Wählen Sie aus vorhandenem GraphQL -Service (GraphQL -Proxy)aus.
  4. Klicken Sie auf Weiter. Geben Sie die API-Zusammenfassung im Abschnitt Info an. Sie können die API nach dem Erstellen optimieren.
    • Der Titel kann Sonderzeichen enthalten, sollte aber kurz gehalten werden, sodass er leicht in der Benutzerschnittstelle angezeigt werden kann.
    • Der Name wird automatisch eingegeben. Der Wert im Feld Name ist eine einzelne Zeichenfolge, die zum Identifizieren der API in Entwicklertoolkit -CLI-Befehlen verwendet wird. Informationen zum Anzeigen der CLI-Befehle zum Verwalten von API-Entwürfen finden Sie in der Referenzdokumentation zur Toolkit-CLI.
    • Die Version entspricht dem Wert der Eigenschaft info.version der API-Definition OpenAPI . Das Versionsnummerierungsschema version.release.modification wird empfohlen, z. B. 1.0.0.
    • Der Basispfad ist das URL-Segment der API und schließt weder den Hostnamen noch weitere Segmente für Pfade oder Operationen ein. Der Basispfad darf keine Sonderzeichen enthalten und muss mit dem Zeichen / beginnen, auch wenn er ansonsten leer ist.
    • Mit der optionalen Beschreibung können Sie die API identifizieren.
  5. Geben Sie im Abschnitt GraphQL Server die folgenden Werte an:
    • GraphQL-Server-URL: Dies ist die URL, die für Anforderungen an die Back-End-GraphQL-API verwendet wird. Das GraphQL-Schema wird automatisch aus der angegebenen URL importiert.
    • Schemaname: Der Name, den Sie hier eingeben, wird verwendet, um die Schemadefinition zu identifizieren, die aus dem importierten GraphQL-Schema erstellt wird. Das Feld wird mit dem Hostnamenssegment des im Feld GraphQL-Server-URL eingegebenen Werts vorbelegt, aber Sie können es ändern.
  6. Klicken Sie auf Weiter. Wenn das importierte Schema Warnungen aufweist, können Sie sie anzeigen, indem Sie auf Anzeigen klicken.
    Sie können diese Warnungen entsprechend bearbeiten, nachdem Sie Ihre GraphQL-Proxy-API erstellt haben.
  7. Wählen Sie im Abschnitt Operationen und Pfade die Operationen und Pfade aus, die Sie einschließen möchten.

    Der Operationspfad von /graphql ist bereits ausgewählt und Sie können diese Einstellung nicht ändern. Dies ist der Pfad für Anwendungsclientanforderungen an API Connect , die die GraphQL -API aufrufen.

    Details zu den Mechanismen, die zum Senden einer Anforderung an den Endpunkt /graphql/cost unterstützt werden, finden Sie unter Von GraphQL -Endpunkten unterstützte Anforderungsmechanismen.

    Sie können auch den Operationspfad von graphql/cost auswählen. Dieser Pfad ermöglicht es Anwendungsclients, Details zu den Kosten einer Anforderung an die GraphQL-API zu erhalten, bevor sie die eigentliche Anforderung ausführen. Vor allem in einer Produktionsumgebung sollten Sie sorgfältig die Auswirkungen auf die Ressourcen berücksichtigen, die sich aus der Bereitstellung dieses Pfads ergeben. Ausführliche Informationen zur Aktivierung des Kostenendpunkts finden Sie unter Kostenendpunkt für eine GraphQL -API aktivieren.

    Um die vollständigen API-Pfade zu bilden, werden diese Pfadsegmente an das basepath angehängt, das Sie in Schritt 4angegeben haben.

    Um Anwendungsclients die Möglichkeit zu geben, Introspektionsanforderungen für diese GraphQL-Proxy-API zu senden, wählen Sie die Option Standardintrospektion unterstützen aus. Ausführliche Informationen hierzu finden Sie unter Introspektion für eine GraphQL -API unterstützen.

    Wählen Sie GraphiQL-Editor aktivieren aus, um Benutzern die Möglichkeit zu geben, die GraphQL-Proxy-API über einen GraphiQL-Editor zu testen. Ausführliche Informationen finden Sie unter GraphiQL -Editor für eine GraphQL -API aktivieren.

    Hinweis: Die Optionen graphql/cost, Support default introspectionund Enable GraphiQL editor generieren jeweils automatisch eine Richtlinienkonfiguration in Ihrer API-Assembly, die manuell erstellt werden müsste, wenn Sie diese Option inaktivieren und später entscheiden, dass sie erforderlich ist.
  8. Optional können Sie das GraphQL-Schema ersetzen, das aus der GraphQL-Server-URL importiert wurde, indem Sie ein Schema aus Ihrem lokalen Dateisystem hochladen. Klicken Sie auf Ersetzen. Sie können dann entweder Ihre Datei ziehen und übergeben, oder klicken Sie, wo angezeigt wird, um die Datei aus Ihrem lokalen Dateisystem auszuwählen. Wenn Sie fertig sind, klicken Sie auf Hochladen .
    Hinweis:
    • Das Schema muss in der GraphQL-Schema-Definition-Sprache (SDL) geschrieben werden. Weitere Informationen finden Sie unter Typsprache in der GraphQL -Dokumentation unter https://graphql.org/.
    • Wenn Sie ein Schema aus einer lokalen Datei hochladen, nachdem Sie zuvor ein Schema aus einer URL hochgeladen haben, behält die Schema-URL-Einstellung, die in der OpenAPI-Quelle für die API gespeichert ist und anschließend in der Benutzerschnittstelle angezeigt wird, den zuvor angegebenen URL-Wert bei, anstatt eine Dateiposition anzugeben.
  9. Klicken Sie auf Weiter. Konfigurieren Sie im Abschnitt Sichern die API-Sicherheit, die Sie benötigen.
    • Mit Client-ID sichern - Wählen Sie diese Option aus, um erforderlich zu machen, dass eine Anwendung eine Client-ID (API-Schlüssel) bereitstellt. Dadurch wird der Parameter X-IBM-Client-Id in den Anforderungsheader für die API eingeschlossen.
    • CORS - Wählen Sie diese Option aus, um CORS-Unterstützung (CORS - Cross-Origin Resource Sharing) für Ihre API zu aktivieren. Auf diese Weise kann die API von einer anderen Domäne aus aufgerufen werden.
      Hinweis:
      • CORS-Unterstützung ist nur auf dem DataPower® API Gatewayverfügbar.
      • Wenn CORS aktiviert ist, führt das API-Gateway die cors -Preflow-Richtlinie aus, um alle CORS-Anforderungen zu verarbeiten, die an die API gesendet werden.
      • Wenn CORS aktiviert ist und eine Preflight-Anforderung empfangen wird, werden nur die folgenden API-Aktionen ausgeführt:
        • Die Preflow-Richtlinie cors konfiguriert die entsprechenden Antwortheader.
        • Die Antwortheader werden festgelegt.
      • Wenn eine Preflight-Anforderung empfangen wird, wird das request.attributes.isCORSPreflight -Flag auf truegesetzt.
      • Bei allen Preflight-Anforderungen werden die Preflow-Richtlinien von security und client-identification immer übersprungen, unabhängig davon, ob CORS aktiviert oder nicht aktiviert ist.
  10. Optional: Wählen Sie API aktivieren aus, wenn Sie die API sofort für weitere Entwicklung und Tests verwenden möchten.
    Hinweis:
    • Wenn Sie die Option API aktivieren auswählen, führt API Connect automatisch die folgenden Aktionen aus:
      • Erstellt einen Entwurfsprodukt, fügt die API zum Produkt hinzu und veröffentlicht das Produkt im Sandbox-Katalog, sodass die API aufgerufen werden kann. Das Produkt hat den Titel api_title auto product. Dieses Produkt ist in der Ansicht Entwickeln nicht sichtbar und kann nicht direkt gelöscht werden. Wenn Sie die API löschen, wird der Produktentwurf zusammen mit der API gelöscht (siehe API-Definition löschen). Das Produkt ist in allen Katalogen sichtbar, für die es veröffentlicht wurde. Wenn Sie das Produkt aus einem Katalog entfernen wollen, müssen Sie dies separat tun; siehe Produkt aus einem Katalog entfernen .
      • Abonniert die Sandbox-Testanwendung für das Produkt, sodass Sie die API sofort in der Testumgebung testen können. Informationen zum Testen einer API finden Sie unter Testen einer API.
    • Sie können die Option API aktivieren nicht verwenden, wenn die Lebenszyklusgenehmigung im Sandbox-Katalog für die Aktionen "Bereitstellen", "Veröffentlichen" oder "Ersetzen" aktiviert ist. Wenn solche Lebenszyklusgenehmigungen aktiviert sind, müssen sie inaktiviert werden, damit die Option API aktivieren verwendet werden kann. Informationen zu den Einstellungen für Lebenszyklusgenehmigungen finden Sie unter Kataloge erstellen und konfigurieren.
    • Um die Option API aktivieren verwenden zu können, muss Ihnen eine Rolle mit den Berechtigungen Product:Manage und Subscription:Manage zugewiesen sein. Die vorab bereitgestellte Entwicklerrolle weist diese Berechtigungen standardmäßig auf; wenn Ihnen eine angepasste Rolle zugeordnet wird, muss sie über diese Berechtigungen verfügen. Weitere Informationen finden Sie unter Angepasste Rollen erstellen.
  11. Klicken Sie auf Weiter , um Ihre API-Definition zu erstellen.

    In der Zusammenfassungsanzeige werden Nachrichten angezeigt, während die Definition erstellt wird, und die ausgewählten Sicherheitsoptionen und Ratenbegrenzungen werden umgesetzt.

    Wenn Sie "API aktivieren" ausgewählt haben, füllt der Assistent einen API-Endpunkt URL aus, den Sie zum Testen verwenden können. Wenn Sie auch Mit Client-ID sichern ausgewählt haben, zeigt der Assistent eine Client-ID und einen geheimen Clientschlüssel an, die Sie verwenden können.

  12. Klicken Sie auf Weiter , um Ihre API-Definition zu erstellen.

    In der Zusammenfassungsanzeige werden Nachrichten angezeigt, während die Definition erstellt wird, und die ausgewählten Sicherheitsoptionen und Ratenbegrenzungen werden erzwungen.

  13. Wählen Sie eine der folgenden Optionen aus:
    • Um die API weiter zu konfigurieren, klicken Sie auf API bearbeiten. Details finden Sie unter Bearbeiten einer API-Definition.
    • Wenn Sie Ihre API zu diesem Zeitpunkt nicht weiter konfigurieren möchten, klicken Sie auf den Link Entwickeln im Navigationspfad, um zur Begrüßungsseite zurückzukehren. Sie können anschließend sofort mit einer anderen Task fortfahren. Details zur späteren Konfiguration Ihrer API finden Sie unter Bearbeiten einer API-Definition.

Nächste Schritte

Mit dem GraphQL -Schemaeditor können Sie alle Warnungen, die dem Schema zugeordnet sind, prüfen und bearbeiten und einen Bereich von Einstellungen konfigurieren, die verwendet werden, um die Komplexität einer GraphQL -Anforderung zu berechnen, sowie zugehörige Kosten, die auf die Ratenbegrenzung angerechnet werden. Weitere Informationen finden Sie unter GraphQL -Schemaeditor verwenden.