Fabric API for GraphQL Editor

Fabric API for GraphQL gir et grafisk graphql-utviklingsmiljø i nettleseren, som gjør det mulig for en interaktiv lekeplass å komponere, teste og se de levende resultatene av GraphQL-spørringer og mutasjoner.

Hvem bruker GraphQL-editoren

GraphQL-editoren er essensiell for:

  • Applikasjonsutviklere prototyper og tester spørringer mot Fabric-data før de implementerer dem i applikasjoner
  • Dataingeniører som utforsker lakehouse- og warehouse-datastrukturer og validerer GraphQL-skjemadesign
  • Bidragsytere til Fabric workspace tester datatilgang og feilsøker spørringsproblemer
  • BI-utviklere lærer API-strukturen og lager dataaksessmønstre for tilpassede applikasjoner
  • Utviklingsteam som samarbeider om spørringsutvikling og feilsøking av datatilgang i Fabric-arbeidsområder

Bruk editoren når du trenger å utvikle, teste eller feilsøke GraphQL-spørringer interaktivt mot dine Fabric-datakilder.

Kom i gang med GraphQL-editoren

Følg disse stegene for å begynne å bruke GraphQL-editoren:

  1. Åpne GraphQL API-elementet – Naviger til arbeidsområdet ditt i Fabric og åpne API-et for GraphQL-elementet.

  2. Få tilgang til editoren – Velg Forespørsel nederst til venstre på portalskjermen din.

    Skjermbilde som viser hvor Spørring-alternativet vises nederst til venstre på Stoff-skjermen.

  3. Skriv spørringen din – Skriv inn GraphQL-spørringene direkte på fanen Spørring . Bruk Intellisense med hurtigtaster:

    • Windows: CTRL + Mellomrom
    • macOS: Kommando + Mellomrom

    Skjermbilde av skjermbildet for API-redigering, som viser en Spørring-fane delt inn i Kjør-, Spørringsvariabler- og Resultat-ruter.

  4. Kjør spørringen – Velg Kjør for å kjøre spørringen og hente data fra datakilden din.

Generer kode

API-editoren genererer automatisk boilerplate Python- eller Node.js-kode som reflekterer GraphQL-spørringen eller mutasjonen du tester i editoren. Når du prototyper og finjusterer spørringene dine, oppdateres den genererte koden deretter. Når du er fornøyd med resultatene, kan du se og kopiere den genererte koden for å kjøre den lokalt for testing, eller gjenbruke den i applikasjonsutviklingsprosessen din.

Viktig

Den genererte koden bruker interaktiv nettleserlegitimasjon og bør bare brukes til testformål. I produksjon må du alltid registrere et program i Microsoft Entra og bruke de aktuelle client_id og omfangene. Du finner et eksempel fra ende til ende med eksempelkode på Koble programmer.

Slik kommer du i gang:

  1. Skriv en spørring – Skriv inn følgende eksempelsspørring (eller din egen) i spørringseditoren:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Kjør spørringen – Velg Kjør for å kjøre spørringen og verifiser at den fungerer riktig i editoren før du fortsetter.

  3. Generer kode – Velg Generer kode-knappen og velg deretter ditt foretrukne programmeringsspråk (Python eller JavaScript/Node.JS):

    Skjermbilde av API-redigeringsskjermen som viser nedtrekksmenyen for å velge programmeringsspråket for generert kode.

  4. Deretter kan du kopiere den genererte koden og lagre den som en fil i en lokal mappe. Avhengig av valgt språk, følg disse raske stegene for å teste lokalt:

Python

  1. Lag en fil med navn editor.py og lim inn den genererte koden fra eksempelforespørselen ovenfor.

  2. Opprett et virtuelt miljø ved å kjøre kommandoen python -m venv .venv.

  3. Aktiver ved venv å kjøre .venv\Scripts\activate eller source .venv/bin/activate.

  4. Installer den nødvendige avhengigheten ved å kjøre pip install azure-identity.

  5. Kjør koden med python editor.py.

  6. Du blir bedt om å logge inn via et nettleservindu for å autentisere forespørselen.

  7. Svaret fra API-et skrives ut i konsollen.

    {
    	"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. Lag en fil med navn editor.js og lim inn den genererte koden fra eksempelforespørselen ovenfor.

  2. I samme mappe som editor.js, opprett en package.json fil med følgende innhold:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Installer Node.js på utviklingsmaskinen din (inkluderer npm)

  4. Kjør npm install @azure/identity eller en lignende kommando i den valgte pakkebehandleren for å installere den nyeste versjonen av identitetsbiblioteket.

  5. Kjør node editor.js for å kjøre koden.

  6. Du blir bedt om å logge inn via et nettleservindu for å autentisere forespørselen.

  7. Svaret fra API-et skrives ut i konsollen.

    {
    	"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"
    				}
    			]
    		}
    	}
    }
    

Utvikling av spørringer og mutasjoner

Følgende eksempler demonstrerer GraphQL-spørrings- og mutasjonssyntaks ved bruk av AdventureWorks-eksempeldata. Disse eksemplene antar at du jobber med et lager i Fabric som støtter skriveoperasjoner (mutasjoner). Datakilder som nås via SQL Analytics Endpoints (som lakehouses og speilede databaser) er skrivebeskyttet og støtter kun spørringer, ikke mutasjoner.

Se gjennom dette korte GraphQL-skjemautdraget fra AdventureWorks. Den definerer en Product type med spørringer for å lese et enkelt produkt eller liste alle produkter, og mutasjoner for å opprette, oppdatere eller slette produkter, og støtter alle CRUDL-brukstilfeller (create, read, update, delete, list).

{
  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
  }
}

Les dataene som eksponeres via GraphQL ved å bruke en hvilken som helst spørring som er definert i skjemaet. Spørringen products_by_pk henter et enkelt produkt ved primærnøkkelen:

query MyQuery {
  products_by_pk(ProductID: 680) {
    ProductID
    Name
    ProductNumber
    Color
    ListPrice
  }
}

Svar:

{
  "data": {
    "products_by_pk": {
      "ProductID": 680,
      "Name": "HL Road Frame - Black, 58",
      "ProductNumber": "FR-R92B-58",
      "Color": "Black",
      "ListPrice": 1431.50
    }
  }
}

Bruk mutasjoner som createProduct å skrive data og lage et nytt produkt med de nødvendige parameterne.

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

Svar:

{
  "data": {
    "createProduct": {
      "ProductID": 1001,
      "Name": "Mountain Bike Helmet - Blue",
      "ProductNumber": "HE-M897-B",
      "ListPrice": 89.99
    }
  }
}

Spørringsvariabler

Bruk Spørringsvariabler-ruten på høyre side av Spørring-fanen til å sende parametere som variabler til spørringene eller mutasjonene. Variabler fungerer som variabler i andre programmeringsspråk. Hver variabel deklareres med et navn som brukes for å få tilgang til verdien som er lagret i den. Ved å bruke det forrige mutasjonseksempelet modifiserer du det litt for å bruke spørringsvariabler.

mutation MyMutation ($name: String!, $productNumber: String!, $listPrice: Float!, $sellStartDate: DateTime!){
  createProduct(
    Name: $name, 
    ProductNumber: $productNumber, 
    ListPrice: $listPrice,
    SellStartDate: $sellStartDate
  ) {
    ProductID
    Name
    ProductNumber
    ListPrice
  }
}

Definer variabler i Spørringsvariabler-panelet ved å bruke følgende eksempel.

{
  "name": "Mountain Bike Helmet - Blue",
  "productNumber": "HE-M897-B",
  "listPrice": 89.99,
  "sellStartDate": "2025-01-01T00:00:00Z"
}

Variabler gjør mutasjonskoden renere, enklere å lese, teste og endre. De gjør det også enkelt å gjenbruke samme mutasjon med forskjellige verdier ved bare å endre variablene.