Freigeben über


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-Schemas und Erstellung einer synthetischen GraphQL-API mit benutzerdefinierten Feld-Resolvern. Weitere Informationen finden Sie in der GraphQL-Übersicht.

Hinweis

Dieses Feature ist derzeit in Arbeitsbereichen nicht verfügbar.

In diesem Artikel führen Sie Folgendes durch:

  • Importieren Sie ein GraphQL-Schema in Ihre Azure API Management-Instanz.
  • Richten Sie einen Resolver für eine GraphQL-Abfrage mithilfe eines vorhandenen HTTP-Endpunkts ein.
  • 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-Verwaltungsdiensten, und wählen Sie sie aus:

    Screenshot der API-Verwaltungsdienste in den Suchergebnissen.

  2. Wählen Sie auf der Seite "API-Verwaltungsdienste " Ihre API-Verwaltungsinstanz aus:

    Screenshot einer API-Verwaltungsinstanz auf der Seite

Hinzufügen eines GraphQL-Schemas

  1. Wählen Sie im linken Bereich unter APIsAPIs aus.

  2. Wählen Sie unter "Neue API definieren" die GraphQL-Kachel aus.

    Screenshot der Auswahl der GraphQL-Kachel.

  3. Wählen Sie im Dialogfeld "Vollständig" aus, und geben Sie dann Werte in die erforderlichen Felder ein, wie in der folgenden Tabelle beschrieben.

    Screenshot der Seite

    Wert BESCHREIBUNG
    Anzeigename Das ist der Name, mit dem Ihre GraphQL-API angezeigt wird.
    Name Der rohe 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 Wählen Sie ein Schema basierend auf Ihrem GraphQL-Endpunkt aus. Wählen Sie eine der Optionen aus, die ein WebSocket-Schema (WS oder WSS) enthält, wenn Ihre GraphQL-API den Abonnementtyp einschließt. Die Standardauswahl ist HTTP(S).
    API-URL-Suffix Fügen Sie ein URL-Suffix hinzu, um die spezifische API in der API-Verwaltungsinstanz zu identifizieren. Muss in der API-Management-Instanz eindeutig sein.
    Basis-URL Unbearbeitbares Feld, in dem Ihre API-Basis-URL angezeigt wird.
    Stichwörter Ordnen Sie optional 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? Aktivieren Sie das Kontrollkästchen, um ein Versionsverwaltungsschema auf Ihre GraphQL-API anzuwenden.
  4. Klicken Sie auf Erstellen.

  5. Überprüfen oder ändern Sie das Schema auf der Registerkarte "Schema ", nachdem die API erstellt wurde.

Konfigurieren eines 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 möchten einen Resolver für die users Abfrage einrichten.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. Wählen Sie im linken Bereich unter APIsAPIs aus.

  2. Wählen Sie Ihre GraphQL-API aus.

  3. Ü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 zeigen Sie dann auf den Mauszeiger am linken Rand.

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

      Screenshot des Hinzufügens eines GraphQL-Resolvers im Portal.

  4. Führen Sie im Bereich "Resolver erstellen " folgendes aus:

    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.
  5. Aktualisieren Sie im Editor Resolver-Richtlinien das <http-data-source>-Element mit untergeordneten Elementen für Ihr Szenario. Beispielsweise ruft der folgende Resolver das users Feld ab, indem er einen GET Aufruf an eine vorhandene HTTP-Datenquelle vornimmt.

        <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 der Konfiguration des Resolvers einer Richtlinie im Portal.

  6. Klicken Sie auf Erstellen.

  7. Wenn Sie Daten für ein anderes Feld im Schema auflösen möchten, wiederholen Sie die vorherigen Schritte, um einen anderen 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. Wechseln Sie zu Ihrer API-Verwaltungsinstanz.

  2. Wählen Sie im linken Bereich im Abschnitt APIsAPIs aus.

  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 die Kopfzeile aus dem Menü "Name " aus.
    2. Geben Sie den Wert in das Feld "Wert " ein.
    3. Fügen Sie weitere Kopfzeilen hinzu, indem Sie "Kopfzeile hinzufügen" auswählen.
    4. Löschen Sie Überschriften mithilfe der Papierkorbschaltfläche.
  6. Wenn Sie Ihrer GraphQL-API ein Produkt hinzugefügt haben, fügen Sie einen Produktbereich unter "Produktbereich anwenden" hinzu.

  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 Menü links neben dem Editor 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 des Abfrage-Editors.

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

  9. Wählen Sie Senden aus.

  10. Zeigen Sie die Antwort an.

    Screenshot der Testabfrageantwort.

  11. Wiederholen Sie die vorstehenden Schritte, um verschiedene Nutzlasten zu testen.

  12. Wenn Sie mit dem Testen fertig sind, beenden Sie die Testkonsole.

Schützen Ihrer GraphQL-API

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