Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Fabric API för GraphQL tillhandahåller en grafisk GraphQL-utvecklingsmiljö i webbläsaren, som gör det möjligt för en interaktiv lekplats att skapa, testa och se liveresultatet för dina GraphQL-frågor och mutationer.
Vem använder GraphQL-redigeraren
GraphQL-redigeraren är viktig för:
- Programutvecklare skapar prototyper och testar frågor mot Infrastrukturdata innan de implementeras i program
- Datatekniker utforskar lakehouse- och lagerdatastrukturer och validerar GraphQL-schemadesign
- Infrastrukturarbetsytedeltagare testar dataåtkomstbehörigheter och felsöker frågeproblem
- BI-utvecklare lär sig API-strukturen och skapar dataåtkomstmönster för anpassade program
- Utvecklingsteam som samarbetar med frågeutveckling och felsöker problem med dataåtkomst i Fabric-arbetsytor
Använd redigeraren när du behöver utveckla, testa eller felsöka GraphQL-frågor interaktivt mot dina Infrastrukturdatakällor.
Kom igång med GraphQL-redigeraren
Följ de här stegen för att börja använda GraphQL-redigeraren:
Öppna GraphQL API-objektet – Navigera till din arbetsyta i Infrastruktur och öppna API:et för GraphQL-objektet.
Öppna redigeraren – Välj Fråga i det nedre vänstra hörnet på portalskärmen.
Skriv din fråga – Skriv dina GraphQL-frågor direkt på fliken Fråga . Använd Intellisense med kortkommandon:
- Windows: CTRL + Blanksteg
- macOS: Kommando + mellanslag
Kör frågan – Välj Kör för att köra frågan och hämta data från datakällan.
Generera kod
API-redigeraren genererar automatiskt python eller Node.js kod som återspeglar GraphQL-frågan eller mutationen som du testar i redigeraren. När du prototypar och förfinar dina frågor uppdateras den genererade koden i enlighet med detta. När du är nöjd med resultatet kan du visa och kopiera den genererade koden för att köras lokalt i testsyfte eller återanvända den i din programutvecklingsprocess.
Important
Den genererade koden använder interaktiva webbläsarautentiseringsuppgifter och bör endast användas för testning. I produktion registrerar du alltid ett program i Microsoft Entra och använder lämpliga client_id omfång och omfång. Du hittar ett exempel från slutpunkt till slutpunkt med exempelkod i Anslut program.
Så här kommer du igång:
Skriv en fråga – Ange följande exempelfråga (eller din egen) i frågeredigeraren:
query { addresses(first: 5) { items { AddressID City StateProvince CountryRegion } } }Kör frågan – Välj Kör för att köra frågan och kontrollera att den fungerar korrekt i redigeraren innan du fortsätter.
Generera kod – Välj knappen Generera kod och välj sedan önskat programmeringsspråk (Python eller JavaScript/Node.JS):
Du kan sedan kopiera den genererade koden och spara den som en fil i en lokal mapp. Beroende på vilket språk du väljer följer du de här snabbstegen för att testa lokalt:
Python
Skapa en fil med namnet
editor.pyoch klistra in den genererade koden från exempelfrågan ovan.Skapa en virtuell miljö genom att köra kommandot
python -m venv .venv.Aktivera genom att
venvköra.venv\Scripts\activateellersource .venv/bin/activate.Installera det nödvändiga beroendet genom att köra
pip install azure-identity.Kör koden med
python editor.py.Du uppmanas att logga in via ett webbläsarfönster för att autentisera begäran.
Svaret från API:et skrivs ut i konsolen.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Node.JS
Skapa en fil med namnet
editor.jsoch klistra in den genererade koden från exempelfrågan ovan.I samma mapp som
editor.jsskapar du enpackage.jsonfil med följande innehåll:{ "type": "module", "dependencies": {} }Installera Node.js på utvecklingsdatorn (inklusive npm)
Kör
npm install @azure/identityeller ett liknande kommando i den valda pakethanteraren för att installera den senaste versionen av identitetsbiblioteket.Kör
node editor.jsför att köra koden.Du uppmanas att logga in via ett webbläsarfönster för att autentisera begäran.
Svaret från API:et skrivs ut i konsolen.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Utveckling av frågor och mutationer
I följande exempel visas GraphQL-fråge- och mutationssyntax med hjälp av AdventureWorks-exempeldata. De här exemplen förutsätter att du arbetar med ett Infrastrukturdatalager som stöder skrivåtgärder (mutationer). Datakällor som nås via SQL Analytics-slutpunkter (som Lakehouses och speglade databaser) är endast läsbara och stöder endast frågeförfrågningar, inte ändringar.
Granska det här korta GraphQL-schemautdraget från AdventureWorks. Den definierar en Product typ med frågor för att läsa en enskild produkt eller lista alla produkter och mutationer för att skapa, uppdatera eller ta bort produkter, som stöder alla CRUDL-användningsfall (skapa, läsa, uppdatera, ta bort, lista).
{
type Product {
ProductID: Int!
Name: String!
ProductNumber: String!
Color: String
ListPrice: Float!
SellStartDate: DateTime!
}
type Query {
products(first: Int, filter: ProductFilterInput): ProductConnection
products_by_pk(ProductID: Int!): Product
}
type Mutation {
createProduct(Name: String!, ProductNumber: String!, ListPrice: Float!, SellStartDate: DateTime!): Product
updateProduct(ProductID: Int!, Name: String, Color: String, ListPrice: Float): Product
deleteProduct(ProductID: Int!): Boolean
}
}
Läs data som exponeras via GraphQL med hjälp av en fråga som definierats i schemat. Frågan products_by_pk hämtar en specifik produkt med hjälp av dess primärnyckel.
query MyQuery {
products_by_pk(ProductID: 680) {
ProductID
Name
ProductNumber
Color
ListPrice
}
}
Response:
{
"data": {
"products_by_pk": {
"ProductID": 680,
"Name": "HL Road Frame - Black, 58",
"ProductNumber": "FR-R92B-58",
"Color": "Black",
"ListPrice": 1431.50
}
}
}
Använd mutationer som createProduct att skriva data och skapa en ny produkt med nödvändiga parametrar.
mutation MyMutation {
createProduct(
Name: "Mountain Bike Helmet - Blue",
ProductNumber: "HE-M897-B",
ListPrice: 89.99,
SellStartDate: "2025-01-01T00:00:00Z"
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Response:
{
"data": {
"createProduct": {
"ProductID": 1001,
"Name": "Mountain Bike Helmet - Blue",
"ProductNumber": "HE-M897-B",
"ListPrice": 89.99
}
}
}
Frågevariabler
Använd fönstret Frågevariabler till höger på fliken Fråga för att skicka parametrar som variabler till dina frågor eller mutationer. Variabler fungerar som variabler i andra programmeringsspråk. Varje variabel deklareras med ett namn som används för att komma åt värdet som lagras i den. Med hjälp av föregående mutationsexempel ändrar du det något för att använda frågevariabler.
mutation MyMutation ($name: String!, $productNumber: String!, $listPrice: Float!, $sellStartDate: DateTime!){
createProduct(
Name: $name,
ProductNumber: $productNumber,
ListPrice: $listPrice,
SellStartDate: $sellStartDate
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Definiera variabler i fönstret Frågevariabler med hjälp av följande exempel.
{
"name": "Mountain Bike Helmet - Blue",
"productNumber": "HE-M897-B",
"listPrice": 89.99,
"sellStartDate": "2025-01-01T00:00:00Z"
}
Variabler gör mutationskoden renare, lättare att läsa, testa och ändra. De gör det också enkelt att återanvända samma mutation med olika värden genom att bara ändra variablerna.