Een synthetische GraphQL-API toevoegen en veld resolvers instellen

VAN TOEPASSING OP: Alle API Management-lagen

In API Management kunt u een GraphQL-API toevoegen in een van twee modellen: passthrough naar een bestaand GraphQL-eindpunt of een GraphQL-schema importeren en een synthetische GraphQL-API maken met aangepaste veld resolvers. Zie het GraphQL-overzicht voor meer informatie.

In dit artikel gaat u het volgende doen:

  • Een GraphQL-schema importeren in uw API Management-exemplaar
  • Een resolver instellen voor een GraphQL-query met behulp van een bestaand HTTP-eindpunt
  • Uw GraphQL-API testen

Als u een bestaand GraphQL-eindpunt als API wilt weergeven, raadpleegt u Een GraphQL-API importeren.

Vereisten

Ga naar uw API Management-exemplaar

  1. Zoek en selecteer API Management-services in Azure Portal.

    API Management-services selecteren

  2. Selecteer uw API Management-exemplaar op de pagina API Management-services.

    Uw API Management-exemplaar selecteren

Een GraphQL-schema toevoegen

  1. Selecteer API's in het navigatiemenu aan de zijkant, onder de sectie API's.

  2. Selecteer onder Een nieuwe API definiëren het GraphQL-pictogram .

    Schermopname van het selecteren van het GraphQL-pictogram in de lijst met API's.

  3. Selecteer in het dialoogvenster Volledig en vul de vereiste formuliervelden in.

    Schermopname van velden voor het maken van een GraphQL-API.

    Veld Omschrijving
    Weergavenaam De naam waarmee uw GraphQL-API wordt weergegeven.
    Naam Onbewerkte naam van de GraphQL-API. Wordt automatisch ingevuld terwijl u de weergavenaam typt.
    GraphQL-type Selecteer Synthetische GraphQL om te importeren uit een GraphQL-schemabestand.
    Fallback GraphQL-eindpunt Voer desgewenst een URL in met de naam van een GraphQL API-eindpunt. API Management geeft GraphQL-query's door aan dit eindpunt wanneer een aangepaste resolver niet is ingesteld voor een veld.
    Beschrijving Voeg een beschrijving van uw API toe.
    URL-schema Maak een selectie op basis van uw GraphQL-eindpunt. Selecteer een van de opties die een WebSocket-schema (WS of WSS) bevatten als uw GraphQL-API het abonnementstype bevat. Standaardselectie: HTTP(S).
    API-URL-achtervoegsel Voeg een URL-achtervoegsel toe om deze specifieke API in dit API Management-exemplaar te identificeren. Het moet uniek zijn in dit API Management-exemplaar.
    Basis-URL Niet-bewerkbaar veld met de API-basis-URL
    Tags Koppel uw GraphQL-API aan nieuwe of bestaande tags.
    PRODUCTEN Koppel uw GraphQL-API aan een product om deze te publiceren.
    Versie van deze API? Selecteer dit om een versiebeheerschema toe te passen op uw GraphQL-API.
  4. Selecteer Maken.

  5. Nadat de API is gemaakt, bladert of wijzigt u het schema op het tabblad Ontwerpen .

Resolver configureren

Configureer een resolver om een veld in het schema toe te wijzen aan een bestaand HTTP-eindpunt. Hier worden stappen op hoog niveau gegeven. Zie Een GraphQL-resolver configureren voor meer informatie.

Stel dat u het volgende eenvoudige GraphQL-schema hebt geïmporteerd en een resolver voor de gebruikersquery wilde instellen.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. Selecteer in het navigatiemenu aan de zijkant onder de sectie API's DE API's> van uw GraphQL-API.

  2. Controleer op het tabblad Schema het schema voor een veld in een objecttype waar u een resolver wilt configureren.

    1. Selecteer een veld en plaats de aanwijzer in de linkermarge.

    2. Select + Add Resolver

      Schermopname van het toevoegen van een GraphQL-resolver in de portal.

  3. Op de pagina Resolver maken:

    1. Werk de eigenschap Naam desgewenst bij, voer desgewenst een beschrijving in en bevestig of werk de selecties Type en Veld bij.
    2. Selecteer HTTP-API in de gegevensbron.
  4. Werk in de beleidseditor van Resolver het <http-data-source> element bij met onderliggende elementen voor uw scenario. Met de volgende resolver wordt bijvoorbeeld het gebruikersveld opgehaald door een GET aanroep uit te voeren naar een bestaande HTTP-gegevensbron.

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

    Schermopname van het configureren van het resolver-beleid in de portal.

  5. Selecteer Maken.

  6. Als u gegevens voor een ander veld in het schema wilt oplossen, herhaalt u de voorgaande stappen om een resolver te maken.

Tip

Wanneer u een resolver-beleid bewerkt, selecteert u Test uitvoeren om de uitvoer van de gegevensbron te controleren, die u kunt valideren op basis van het schema. Als er fouten optreden, bevat het antwoord informatie over probleemoplossing.

Uw GraphQL-API testen

  1. Navigeer naar uw API Management-exemplaar.

  2. Selecteer API's in het navigatiemenu aan de zijkant, onder de sectie API's.

  3. Selecteer uw GraphQL-API onder Alle API's.

  4. Selecteer het tabblad Testen om toegang te krijgen tot de testconsole.

  5. Onder Kopteksten:

    1. Selecteer de koptekst in de vervolgkeuzelijst Naam .
    2. Voer de waarde in het veld Waarde in.
    3. Voeg meer headers toe door + Koptekst toevoegen te selecteren.
    4. Verwijder kopteksten met behulp van het prullenbakpictogram.
  6. Als u een product hebt toegevoegd aan uw GraphQL-API, past u het productbereik toe onder Productbereik toepassen.

  7. Ga als volgt te werk onder Query-editor:

    1. Selecteer ten minste één veld of subveld in de lijst in het zijmenu. De velden en subvelden die u selecteert, worden weergegeven in de queryeditor.

    2. Begin te typen in de queryeditor om een query op te stellen.

      Schermopname van het toevoegen van velden aan de query-editor.

  8. Voeg onder Queryvariabelen variabelen toe om dezelfde query of mutatie opnieuw te gebruiken en verschillende waarden door te geven.

  9. Selecteer Verzenden.

  10. Bekijk het antwoord.

    Schermopname van het weergeven van het antwoord van de testquery.

  11. Herhaal de voorgaande stappen om verschillende nettoladingen te testen.

  12. Wanneer het testen is voltooid, sluit u de testconsole af.

Uw GraphQL-API beveiligen

Beveilig uw GraphQL-API door zowel bestaand verificatie- als autorisatiebeleid en een GraphQL-validatiebeleid toe te passen om te beschermen tegen GraphQL-specifieke aanvallen.

Volgende stappen