Importera ett GraphQL-schema och konfigurera fältmatchare
GraphQL är ett frågespråk med öppen källkod och branschstandard för API:er. Till skillnad från slutpunktsbaserade API:er (eller REST-format) som utformats för åtgärder över resurser stöder GraphQL-API:er en bredare uppsättning användningsfall och fokuserar på datatyper, scheman och frågor.
Med API Management för att exponera graphQL-API:er kan du:
- Lägga till ett GraphQL-slutpunkt eller GraphQL-schema som ett API via Azure-portalen, Azure CLI eller andra Azure-verktyg.
- (Förhandsversion) Utöka eller utforma ett GraphQL API med hjälp av information från REST- eller SOAP-API:er, med http-matchare för fält som definierats i ett GraphQL-schema.
- Skydda GraphQL-API:er genom att tillämpa både befintliga principer för åtkomstkontroll och en GraphQL-valideringsprincip för att skydda och skydda mot GraphQL-specifika attacker.
- Utforska schemat och kör testfrågor mot GraphQL-API:erna i Azure- och utvecklarportalerna.
Anteckning
- Ett enda GraphQL-API i API Management kan mappas till en enda GraphQL-serverdelsslutpunkt.
- Ett GraphQL-API kräver ett GraphQL-schema, antingen från en befintlig GraphQL-slutpunkt eller uppladdat av dig.
- API Management stöder åtgärdstyper för frågor, mutationer och prenumerationer i GraphQL-scheman.
- Prenumerationer stöds inte på tjänstnivån Förbrukning.
- En prenumeration måste implementeras med hjälp av WebSocket-protokollet graphql-ws. Frågor och mutationer stöds inte via WebSocket.
Viktigt
Konfiguration av matchare för GraphQL-frågor är för närvarande i förhandsversion. Den här funktionen är inte tillgänglig på förbrukningstjänstnivån eller i gatewayen med egen värd.
I den här artikeln ska du:
- Importera ett GraphQL-schema till din API Management-instans
- Konfigurera en matchare för en GraphQL-fråga med hjälp av en befintlig HTTP-slutpunkter
- Testa GraphQL-API:et
Om du vill exponera en befintlig GraphQL-slutpunkt som ett API läser du Importera ett GraphQL-API.
Förutsättningar
- En befintlig API Management instans. Skapa en om du inte redan har gjort det.
- En giltig GraphQL-schemafil med
.graphql
tillägget . - En GraphQL-slutpunkt för serverdelen är valfri för det här scenariot.
Gå till API Management-instansen
I Azure Portal söker du efter och väljer API Management tjänster.
På sidan API Management tjänster väljer du din API Management-instans.
Lägga till ett GraphQL-schema
I sidonavigeringsmenyn går du till avsnittet API:er och väljer API:er.
Under Definiera ett nytt API väljer du ikonen Syntetisk GraphQL .
I dialogrutan väljer du Fullständig och fyller i de obligatoriska formulärfälten.
Fält Beskrivning Visningsnamn Namnet som GraphQL-API:et ska visas med. Namn Rånamn för GraphQL-API:et. Fylls i automatiskt när du skriver visningsnamnet. Återställningspunkt för GraphQL-slutpunkt I det här scenariot kan du ange en URL med ett GraphQL API-slutpunktsnamn. API Management skickar GraphQL-frågor till den här slutpunkten när en anpassad matchare inte har angetts för ett fält. Ladda upp schemafil Välj att bläddra och ladda upp en giltig GraphQL-schemafil med .graphql
tillägget .Beskrivning Lägg till en beskrivning av ditt API. URL-schema Välj HTTP, HTTPS eller Båda. Standardval: Båda. API URL-suffix Lägg till ett URL-suffix för att identifiera det här specifika API:et i den här API Management-instansen. Det måste vara unikt i den här API Management instansen. Grundläggande URL Ett fält som inte kan redigeras visar din API-bas-URL Taggar Associera GraphQL-API:et med nya eller befintliga taggar. Produkter Associera GraphQL-API:et med en produkt för att publicera det. Gateways Associera GraphQL-API:et med befintliga gatewayer. Standardalternativ för gateway: Hanterad. Vilken är versionen för det här API:et? Välj att tillämpa ett versionsschema på GraphQL-API:et. Välj Skapa.
När API:et har skapats bläddrar du i schemat på fliken Design i avsnittet Klientdel .
Konfigurera matchare
Konfigurera principen set-graphql-resolver för att mappa ett fält i schemat till en befintlig HTTP-slutpunkt.
Anta att du importerade följande grundläggande GraphQL-schema och ville konfigurera en matchare för användarfrågan .
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
I sidonavigeringsmenyn går du till avsnittet API:er och väljer API:er> för ditt GraphQL-API.
På fliken Design i GraphQL API väljer du Alla åtgärder.
I avsnittet Serverdelsbearbetning väljer du + Lägg till princip.
set-graphql-resolver
Konfigurera principen för att lösa användarfrågan med hjälp av en HTTP-datakälla.Följande
set-graphql-resolver
princip hämtar till exempel fältet användare med hjälp av ettGET
anrop på en befintlig HTTP-datakälla.<set-graphql-resolver parent-type="Query" field="users"> <http-data-source> <http-request> <set-method>GET</set-method> <set-url>https://myapi.contoso.com/users</set-url> </http-request> </http-data-source> </set-graphql-resolver>
Om du vill lösa data för andra fält i schemat upprepar du föregående steg.
Välj Spara.
Testa GraphQL-API:et
Gå till din API Management-instans.
I sidonavigeringsmenyn går du till avsnittet API:er och väljer API:er.
Under Alla API:er väljer du ditt GraphQL-API.
Välj fliken Test för att komma åt testkonsolen.
Under Rubriker:
- Välj rubriken i den nedrullningsbara menyn Namn .
- Ange värdet i fältet Värde .
- Lägg till fler rubriker genom att välja + Lägg till rubrik.
- Ta bort rubriker med hjälp av papperskorgsikonen.
Om du har lagt till en produkt i GraphQL-API:et tillämpar du produktomfånget under Tillämpa produktomfång.
Under Frågeredigeraren:
Välj minst ett fält eller underfält i listan på sidomenyn. De fält och underfält som du väljer visas i frågeredigeraren.
Börja skriva i frågeredigeraren för att skapa en fråga.
Under Frågevariabler lägger du till variabler för att återanvända samma fråga eller mutation och skicka olika värden.
Välj Skicka.
Visa svaret.
Upprepa föregående steg för att testa olika nyttolaster.
När testningen är klar avslutar du testkonsolen.
Anteckning
Du kan testa en prenumeration i testkonsolen:
- Konfigurera en prenumerationsfråga i frågeredigeraren och välj sedan Anslut för att upprätta en WebSocket-anslutning till serverdelstjänsten.
- Granska anslutningsinformationen i fönstret Prenumeration .
- WebSocket-anslutningen upprätthålls tills du kopplar från den eller ansluter till en ny WebSocket-prenumeration.
Relaterade ämnen
- Begränsningar för API-import
- Importera en OpenAPI-specifikation
- Importera ett SOAP-API
- Importera ett SOAP-API och konvertera till REST
- Importera ett App Service-API
- Importera ett API för containerapp
- Importera ett WebSocket-API
- Importera ett GraphQL-API
- Importera ett GraphQL-schema och konfigurera fältmatchare
- Importera en Azure-funktionsapp
- Importera en Azure-logikapp
- Importera en Service Fabric-tjänst
- Importera SAP OData-metadata
- Redigera ett API