Dela via


Infrastruktur-API för GraphQL-redigeraren

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:

  1. Öppna GraphQL API-objektet – Navigera till din arbetsyta i Infrastruktur och öppna API:et för GraphQL-objektet.

  2. Öppna redigeraren – Välj Fråga i det nedre vänstra hörnet på portalskärmen.

    Skärmbild som visar var alternativet Fråga visas i det nedre vänstra hörnet på skärmen Infrastruktur.

  3. 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

    Skärmbild av skärmen FÖR API-redigeraren, som visar en frågeflik indelad i fönstret Kör, Frågevariabler och Resultat.

  4. 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:

  1. Skriv en fråga – Ange följande exempelfråga (eller din egen) i frågeredigeraren:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. 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.

  3. Generera kod – Välj knappen Generera kod och välj sedan önskat programmeringsspråk (Python eller JavaScript/Node.JS):

    Skärmbild av skärmen API-redigerare som visar listrutan för att välja programmeringsspråket för genererad kod.

  4. 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

  1. Skapa en fil med namnet editor.py och klistra in den genererade koden från exempelfrågan ovan.

  2. Skapa en virtuell miljö genom att köra kommandot python -m venv .venv.

  3. Aktivera genom att venv köra .venv\Scripts\activate eller source .venv/bin/activate.

  4. Installera det nödvändiga beroendet genom att köra pip install azure-identity.

  5. Kör koden med python editor.py.

  6. Du uppmanas att logga in via ett webbläsarfönster för att autentisera begäran.

  7. 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

  1. Skapa en fil med namnet editor.js och klistra in den genererade koden från exempelfrågan ovan.

  2. I samma mapp som editor.jsskapar du en package.json fil med följande innehåll:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Installera Node.js på utvecklingsdatorn (inklusive npm)

  4. Kör npm install @azure/identity eller ett liknande kommando i den valda pakethanteraren för att installera den senaste versionen av identitetsbiblioteket.

  5. Kör node editor.js för att köra koden.

  6. Du uppmanas att logga in via ett webbläsarfönster för att autentisera begäran.

  7. 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.