Eine synthetische GraphQL-API hinzufügen und Feld-Resolver einrichten

GILT FÜR: Alle API Management-Ebenen

In API Management können Sie eine GraphQL-API in einem von zwei Modellen hinzufügen: Passthrough an einen vorhandenen GraphQL-Endpunkt oder Import eines GraphQL-Schema und Erstellung einer synthetischen GraphQL-API mit benutzerdefinierten Feld-Resolvern. Weitere Informationen finden Sie in der GraphQL-Übersicht.

In diesem Artikel führen Sie Folgendes durch:

  • Importieren eines GraphQL-Schemas zu Ihrer API Management-Instanz
  • Einrichten eines Resolvers für eine GraphQL-Abfrage mithilfe eines vorhandenen HTTP-Endpunkts
  • Testen Ihrer GraphQL-API

Wenn Sie einen vorhandenen GraphQL-Endpunkt als API verfügbar machen möchten, finden Sie weitere Informationen unter Importieren einer GraphQL-API.

Voraussetzungen

Navigieren zur API Management-Instanz

  1. Suchen Sie im Azure-Portal nach API Management-Dienste, und wählen Sie diese Option aus.

    Auswählen von API Management-Dienste

  2. Wählen Sie auf der Seite API Management-Dienste Ihre API Management-Instanz aus.

    Auswählen Ihrer API Management-Instanz

Hinzufügen eines GraphQL-Schemas

  1. Wählen Sie im Seitennavigationsmenü im Abschnitt APIs die Option APIsaus.

  2. Wählen Sie unter Define a new API (Neue API definieren) das GraphQL-Symbol aus.

    Screenshot: Auswählen des GraphQL-Symbols aus der API-Liste

  3. Wählen Sie im Dialogfeld Vollständig aus, und füllen Sie die erforderlichen Formularfelder aus.

    Screenshot der Felder zum Erstellen einer GraphQL-API

    Feld Beschreibung
    Anzeigename Das ist der Name, mit dem Ihre GraphQL-API angezeigt wird.
    Name Das ist der unformatierte Name der GraphQL-API. Er wird automatisch ausgefüllt, wenn Sie den Anzeigenamen eingeben.
    GraphQL-Typ Wählen Sie Synthetischer GraphQL aus, um aus einer GraphQL-Schemadatei zu importieren.
    GraphQL-Fallbackendpunkt Geben Sie optional eine URL mit einem GraphQL-API-Endpunktnamen ein. API Management übergibt GraphQL-Abfragen an diesen Endpunkt, wenn kein benutzerdefinierter Resolver für ein Feld festgelegt ist.
    Beschreibung Fügen Sie eine Beschreibung Ihrer API hinzu.
    URL-Schema Treffen Sie eine Auswahl basierend auf Ihrem GraphQL-Endpunkt. Wählen Sie eine der Optionen aus, die ein WebSocket-Schema (WS oder WSS) enthält, wenn Ihre GraphQL-API den Abonnementtyp einschließt. Standardauswahl: HTTP(S).
    API-URL-Suffix Fügen Sie ein URL-Suffix hinzu, um diese spezifische API in dieser API Management-Instanz zu identifizieren. Es muss in dieser API Management-Instanz eindeutig sein.
    Basis-URL In diesem nicht bearbeitbaren Feld wird die Basis-URL für Ihre API angezeigt.
    Tags Ordnen Sie Ihre GraphQL-API neuen oder vorhandenen Tags zu.
    Produkte Ordnen Sie Ihre GraphQL-API einem Produkt zu, um sie zu veröffentlichen.
    Versionsverwaltung für diese API? Wählen Sie aus, ein Versionsverwaltungsschema auf Ihre GraphQL-API anzuwenden.
  4. Klicken Sie auf Erstellen.

  5. Nachdem die API erstellt wurde, suchen oder ändern Sie das Schema auf der Registerkarte Entwurf.

Konfigurieren des Resolvers

Konfigurieren Sie einen Resolver, um ein Feld im Schema einem vorhandenen HTTP-Endpunkt zuzuordnen. Hier finden Sie allgemeine Schritte. Einzelheiten finden Sie unter Konfigurieren eines GraphQL-Resolvers.

Angenommen, Sie haben das folgende grundlegende GraphQL-Schema importiert und einen Resolver für die Abfrage users eingerichtet.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. Wählen Sie im Seitennavigationsmenü im Abschnitt APIs unter der Option APIs> Ihre GraphQL-API aus.

  2. Überprüfen Sie auf der Registerkarte Schema das Schema für ein Feld in einem Objekttyp, in dem Sie einen Resolver konfigurieren möchten.

    1. Wählen Sie ein Feld aus, und fahren Sie dann mit dem Mauszeiger über den linken Rand.

    2. Wählen Sie + Resolver hinzufügen aus.

      Screenshot: Hinzufügen eines GraphQL-Resolvers im Portal

  3. Gehen Sie auf der Seite Resolver erstellen folgendermaßen vor:

    1. Aktualisieren Sie bei Bedarf die Eigenschaft Name, geben Sie optional eine Beschreibung ein, und bestätigen oder aktualisieren Sie die Auswahl für Typ und Feld.
    2. Wählen Sie unter Datenquelle die Option HTTP-API aus.
  4. Aktualisieren Sie im Editor Resolver-Richtlinien das <http-data-source>-Element mit untergeordneten Elementen für Ihr Szenario. Der folgende Resolver ruft beispielsweise das Feld Benutzer mithilfe eines GET-Aufrufs einer vorhandenen HTTP-Datenquelle ab.

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    Screenshot: Konfiguration der Resolverrichtlinie im Portal

  5. Klicken Sie auf Erstellen.

  6. Um Daten für ein anderes Feld im Schema aufzulösen, wiederholen Sie die vorherigen Schritte, um einen Resolver zu erstellen.

Tipp

Wählen Sie beim Bearbeiten einer Resolverrichtlinie Test ausführen aus, um die Ausgabe der Datenquelle zu überprüfen, die Sie anhand des Schemas validieren können. Wenn Fehler auftreten, enthält die Antwort Informationen zur Problembehandlung.

Testen Ihrer GraphQL-API

  1. Navigieren Sie zu Ihrer API Management-Instanz.

  2. Wählen Sie im Seitennavigationsmenü im Abschnitt APIs die Option APIsaus.

  3. Wählen Sie unter Alle APIs Ihre GraphQL-API aus.

  4. Wählen Sie die Registerkarte Test aus, um auf die Testkonsole zuzugreifen.

  5. Unter Header:

    1. Wählen Sie im Dropdownmenü Name den Header aus.
    2. Geben Sie den Wert in das Feld Wert ein.
    3. Fügen Sie weitere Header hinzu, indem Sie + Header hinzufügen auswählen.
    4. Löschen Sie Header mithilfe des Papierkorbsymbols.
  6. Wenn Sie Ihrer GraphQL-API ein Produkt hinzugefügt haben, wenden Sie den Produktbereich mithilfe von Apply product scope (Produktbereich anwenden) an.

  7. Führen Sie im Abfrage-Editor eine der folgenden Aktionen aus:

    1. Wählen Sie mindestens ein Feld oder Unterfeld aus der Liste im Seitenmenü aus. Die von Ihnen ausgewählten Felder und Unterfelder werden im Abfrage-Editor angezeigt.

    2. Beginnen Sie mit der Eingabe im Abfrage-Editor, um eine Abfrage zu erstellen.

      Screenshot : Felder zum Abfrage-Editor hinzufügen

  8. Fügen Sie unter Abfragevariablen Variablen hinzu, um eine Abfrage oder Mutation wiederzuverwenden und unterschiedliche Werte zu übergeben.

  9. Wählen Sie Send (Senden) aus.

  10. Zeigen Sie die Antwort an.

    Screenshot: Anzeigen der Testabfrageantwort

  11. Wiederholen Sie die vorherigen Schritte, um verschiedene Nutzdaten zu testen.

  12. Beenden Sie die Testkonsole, wenn die Tests abgeschlossen sind.

GraphQL-API sichern

Schützen Sie Ihre GraphQL-API vor GraphQL-spezifischen Angriffen durch das Anwenden vorhandener Authentifizierungs- und Autorisierungsrichtlinien und einer GraphQL-Validierungsrichtlinie.

Nächste Schritte