Del via


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 Fabric Data Warehouse som støtter skriveoperasjoner (mutasjoner). Datakilder som får tilgang 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.