Del via


Fabric API til GraphQL-editor

Fabric-API'en til GraphQL indeholder et grafisk GraphQL-udviklingsmiljø i browseren, som gør det muligt for en interaktiv legeplads at skrive, teste og se liveresultaterne af dine GraphQL-forespørgsler og -mutationer.

Hvem bruger GraphQL-editoren

GraphQL-editoren er essentiel for:

  • Applikationsudviklere prototyper og tester forespørgsler mod Fabric-data, før de implementerer dem i applikationer
  • Dataingeniører , der udforsker lakehouse- og warehouse-datastrukturer og validerer GraphQL-skemadesigns
  • Fabric workspace-bidragydere tester dataadgangstilladelser og fejlsøger forespørgselsproblemer
  • BI-udviklere lærer API-strukturen og skaber dataadgangsmønstre til brugerdefinerede applikationer
  • Udviklingsteams , der samarbejder om forespørgselsudvikling og fejlfinding af dataadgangsproblemer i Fabric-arbejdsområder

Brug editoren, når du har brug for interaktivt at udvikle, teste eller fejlfinde GraphQL-forespørgsler mod dine Fabric-datakilder.

Kom i gang med GraphQL-editoren

Følg disse trin for at begynde at bruge GraphQL-editoren:

  1. Åbn GraphQL API-elementet - Navigér til dit arbejdsområde i Fabric og åbn API'en for GraphQL-elementet.

  2. adgang til editoren - Vælg Forespørgsel i nederste venstre hjørne af din portalskærm.

    Skærmbillede, der viser, hvor indstillingen Forespørgsel vises i nederste venstre hjørne af stofskærmen.

  3. Skriv din forespørgsel - Indtast dine GraphQL-forespørgsler direkte på fanen Forespørgsel . Brug Intellisense med genvejstaster:

    • Windows: CTRL + Mellemrum
    • macOS: Kommando + Mellemrum

    Skærmbillede af skærmbilledet API-editor, som viser fanen Forespørgsel opdelt i ruder Kør, Forespørgselsvariabler og Resultater.

  4. Udfør forespørgslen - Vælg Kør for at udføre forespørgslen og hente data fra din datakilde.

Generér kode

API-editoren genererer automatisk boilerplate Python- eller Node.js-kode, der afspejler den GraphQL-forespørgsel eller mutation, du i øjeblikket tester i editoren. Når du prototyper og forfiner dine forespørgsler, opdateres den genererede kode derefter. Når du er tilfreds med resultaterne, kan du se og kopiere den genererede kode til at køre lokalt til testformål eller genbruge den i din applikationsudviklingsproces.

Vigtigt

Den genererede kode bruger interaktive browserlegitimationsoplysninger og bør kun bruges til testformål. I produktionen skal du altid registrere et program i Microsoft Entra og bruge de relevante client_id områder og områder. Du kan finde et eksempel fra ende til anden med eksempelkode i Connect Applications.

Sådan kommer du i gang:

  1. Skriv en forespørgsel - Indtast følgende eksempelforespørgsel (eller din egen) i forespørgselseditoren:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Kør forespørgslen - Vælg Kør for at udføre forespørgslen og verificér, at det fungerer korrekt i editoren, før du fortsætter.

  3. Generer kode - Vælg knappen Generer kode og vælg derefter dit foretrukne programmeringssprog (Python eller JavaScript/Node.JS):

    Skærmbillede af API-editorens skærm, der viser dropdown-menuen til at vælge programmeringssproget for genereret kode.

  4. Du kan derefter kopiere den genererede kode og gemme den som en fil i en lokal mappe. Afhængigt af det valgte sprog følger du disse hurtige trin for at teste lokalt:

Python

  1. Opret en fil med navnet editor.py og indsæt den genererede kode fra eksempelforespørgslen ovenfor.

  2. Opret et virtuelt miljø ved at køre kommandoen python -m venv .venv.

  3. Aktiver ved venv at køre .venv\Scripts\activate eller source .venv/bin/activate.

  4. Installer den nødvendige afhængighed ved at køre pip install azure-identity.

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

  6. Du bliver bedt om at logge ind via et browservindue for at autentificere anmodningen.

  7. Svaret fra API'en udskrives 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. Opret en fil med navnet editor.js og indsæt den genererede kode fra eksempelforespørgslen ovenfor.

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

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

  4. Kør npm install @azure/identity eller en lignende kommando i din valgte pakkehåndtering for at installere den nyeste version af identitetsbiblioteket.

  5. Kør node editor.js for at køre koden.

  6. Du bliver bedt om at logge ind via et browservindue for at autentificere anmodningen.

  7. Svaret fra API'en udskrives 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"
    				}
    			]
    		}
    	}
    }
    

Udvikling af forespørgsler og mutationer

Følgende eksempler demonstrerer GraphQL-forespørgsels- og mutationssyntaks ved brug af AdventureWorks-eksempeldata. Disse eksempler antager, at du arbejder med et Fabric Data Warehouse, der understøtter skriveoperationer (mutationer). Datakilder, der tilgås via SQL Analytics Endpoints (som Lakehouses og spejlede databaser), er skrivebeskyttede og understøtter kun forespørgsler, ikke mutationer.

Gennemgå dette korte GraphQL-skema-uddrag fra AdventureWorks. Den definerer en Product type med forespørgsler til at læse et enkelt produkt eller liste alle produkter, og mutationer til at oprette, opdatere eller slette produkter, og understøtter alle CRUDL-brugstilfælde (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
  }
}

Læs de data, der eksponeres via GraphQL, ved hjælp af en forespørgsel, der er defineret i skemaet. Forespørgslen products_by_pk henter et enkelt produkt ved dets primære nøgle:

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

Brug mutationer som createProduct at skrive data og skabe et nyt produkt med de nødvendige parametre.

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

Forespørgselsvariabler

Brug ruden Forespørgselsvariabler i højre side af fanen Forespørgsel til at overføre parametre som variabler til dine forespørgsler eller mutationer. Variabler fungerer som variabler i andre programmeringssprog. Hver variabel er deklareret med et navn, der bruges til at få adgang til den værdi, der er gemt i den. Ved at bruge det tidligere mutationseksempel modificerer du det en smule for at bruge forespørgselsvariabler.

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

Definér variabler i Forespørgselsvariable-panelet ved hjælp af følgende eksempel.

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

Variabler gør mutationskoden renere, lettere at læse, teste og ændre. De gør det også nemt at genbruge den samme mutation med forskellige værdier ved blot at ændre variablerne.