Delen via


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.

Opmerking

Deze functie is momenteel niet beschikbaar in werkruimten.

In dit artikel gaat u het volgende doen:

  • Importeer een GraphQL-schema in uw Azure API Management-exemplaar.
  • Stel een resolver in voor een GraphQL-query met behulp van een bestaand HTTP-eindpunt.
  • Test je GraphQL-API.

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

Vereiste voorwaarden

Ga naar uw API-Beheerinstantie

  1. Zoek en selecteer in de Azure portalde API Management-services:

    Schermopname van API Management-services in de zoekresultaten.

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

    Schermopname van een API Management-exemplaar op de pagina API Management-services.

Een GraphQL-schema toevoegen

  1. Selecteer API's in het linkerdeelvenster onder API's.

  2. Onder Een nieuwe API definiëren, selecteer de tegel GraphQL.

    Schermopname van het selecteren van de GraphQL-tegel.

  3. Selecteer Volledig in het dialoogvenster en voer waarden in de vereiste velden in, zoals beschreven in de volgende tabel.

    Schermopname van de pagina Maken op basis van graphQL-schema.

    Waarde Beschrijving
    weergavenaam De naam waarmee uw GraphQL-API wordt weergegeven.
    Naam De 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 Selecteer een schema 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. De standaardselectie is HTTP(S).
    API-URL-achtervoegsel Voeg een URL-achtervoegsel toe om de specifieke API in het API Management-exemplaar te identificeren. Moet uniek zijn in de API Management-instantie.
    Basis-URL Niet-bewerkbaar veld dat de API-basis-URL weergeeft.
    tags Koppel eventueel uw GraphQL-API aan nieuwe of bestaande tags.
    PRODUCTEN Koppel uw GraphQL-API aan een product om deze te publiceren.
    Versie van deze API? Schakel het selectievakje in om een versiebeheerschema toe te passen op uw GraphQL-API.
  4. Klik op Creëren.

  5. Nadat de API is gemaakt, controleert of wijzigt u het schema op het tabblad Schema .

Een 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 wilt instellen voor de users query.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. Selecteer API's in het linkerdeelvenster onder API's.

  2. Selecteer uw GraphQL-API.

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

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

    2. Selecteer Resolver toevoegen.

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

  4. In het deelvenster 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.
  5. Werk in de beleidseditor van Resolver het <http-data-source> element bij met kind-elementen voor uw scenario. Met de volgende resolver wordt bijvoorbeeld het users veld opgehaald door een GET aanroep naar een bestaande HTTP-gegevensbron uit te voeren.

        <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 een beleid in de portal.

  6. Klik op Creëren.

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

Aanbeveling

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. Ga naar uw API Management-exemplaar.

  2. Selecteer API's in het linkerdeelvenster in 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 het menu Naam .
    2. Voer de waarde in het vak Waarde in.
    3. Voeg meer headers toe door koptekst toevoegen te selecteren.
    4. Verwijder kopteksten met behulp van de knop Prullenbak.
  6. Als u een product hebt toegevoegd aan uw GraphQL-API, voegt u een productbereik toe onder Productbereik toepassen.

  7. Voer in de Query-editor een van de volgende handelingen uit:

    1. Selecteer ten minste één veld of subveld in de lijst in het menu links van de editor. 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 de queryeditor.

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

  9. Klik op Verzenden.

  10. Bekijk het antwoord.

    Schermopname van het antwoord van de testquery.

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

  12. Wanneer u klaar bent met testen, 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.