Zdieľať cez


Rozhranie API služby Fabric pre editor GraphQL

Rozhranie API služby Fabric pre GraphQL poskytuje grafické vývojové prostredie GraphQL v prehliadači, ktoré umožňuje interaktívnemu ihrisku vytvárať, testovať a zobrazovať živé výsledky vašich dotazov a mutácií GraphQL.

Kto používa editor GraphQL

Editor GraphQL je nevyhnutný pre:

  • Vývojári aplikácií prototypujú a testujú dotazy na Fabric dátach pred ich implementáciou v aplikáciách
  • Dátoví inžinieri skúmajúci dátové štruktúry lakehouse a skladov a validujúci návrhy schém GraphQL
  • Prispievatelia do pracovného priestoru fabric testujú oprávnenia na prístup k dátam a riešia problémy s dotazmi
  • BI vývojári sa učia štruktúru API a vytvárajú vzory prístupu k dátam pre vlastné aplikácie
  • Vývojové tímy spolupracujúce na vývoji dotazov a riešení problémov s prístupom k dátam v rámci Fabric pracovných priestorov

Používajte editor vždy, keď potrebujete interaktívne vyvíjať, testovať alebo ladiť GraphQL dotazy na vašich Fabric dátových zdrojoch.

Začnite s editorom GraphQL

Postupujte podľa týchto krokov na začatie používania editora GraphQL:

  1. Otvorte položku GraphQL API – prejdite do svojho pracovného priestoru v Fabric a otvorte API pre položku GraphQL.

  2. Otvorte editor – Vyberte Query v ľavom dolnom rohu obrazovky portálu.

    Snímka obrazovky zobrazujúca miesto, kde sa v ľavom dolnom rohu obrazovky Fabric zobrazí možnosť Dotaz.

  3. Napíšte svoj dotaz – Zadajte svoje GraphQL dotazy priamo na záložke Dotaz. Používajte Intellisense s klávesovými skratkami:

    • Windows: CTRL + Space
    • macOS: Command + Space

    Snímka obrazovky editora rozhrania API, ktorá zobrazuje kartu Dotaz rozdelenú na tably Spustiť, Premenné dotazu a Výsledky.

  4. Spustiť dotaz – Vyberte Spustiť na vykonanie dotazu a získanie dát zo zdroja dát.

Generovať kód

API editor automaticky generuje boilerplate Python alebo Node.js kód, ktorý odráža GraphQL dotaz alebo mutáciu, ktorú práve testujete v editore. Ako prototypujete a zdokonaľujete svoje dotazy, generovaný kód sa podľa toho aktualizuje. Keď ste s výsledkami spokojní, môžete si vygenerovaný kód pozrieť a skopírovať na lokálne testovanie alebo ho znovu použiť vo vývoji aplikácie.

Dôležité

Vygenerovaný kód používa interaktívne poverenia prehliadača a mal by sa používať iba na testovacie účely. V produkčnom prostredí vždy zaregistrujte aplikáciu v aplikácii Microsoft Entra a použite príslušné client_id a rozsahy. Komplexný príklad so vzorovým kódom nájdete v časti Pripojenie aplikácií.

Ako začať:

  1. Napíšte dopyt – Zadajte nasledujúci vzorový dopyt (alebo svoj vlastný) do editora dotazov:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Spustiť dotaz – Vyberte Spustiť dotaz a overte, či v editore funguje správne, predtým než pokračujete.

  3. Generujte kód – Vyberte tlačidlo Generate code a potom vyberte preferovaný programovací jazyk (Python alebo JavaScript/Node.JS):

    Screenshot obrazovky API editora zobrazujúci rozbaľovaciu ponuku na výber programovacieho jazyka pre generovaný kód.

  4. Potom môžete vygenerovaný kód skopírovať a uložiť ako súbor v lokálnom priečinku. V závislosti od zvoleného jazyka postupujte podľa týchto rýchlych krokov na lokálne testovanie:

Python

  1. Vytvorte súbor s názvom editor.py a vložte vygenerovaný kód z príkladu dotazu vyššie.

  2. Vytvorte virtuálne prostredie spustením príkazu python -m venv .venv.

  3. Aktivujte spustením venv.venv\Scripts\activate alebo source .venv/bin/activate.

  4. Nainštalujte požadovanú závislosť spustením pip install azure-identity.

  5. Spustite kód pomocou python editor.py.

  6. Ste vyzvaní na prihlásenie cez okno prehliadača, aby ste požiadali o autentifikáciu.

  7. Odpoveď z API je vytlačená v konzole.

    {
    	"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. Vytvorte súbor s názvom editor.js a vložte vygenerovaný kód z príkladu dotazu vyššie.

  2. V tom istom priečinku ako editor.js, vytvorte package.json súbor s nasledujúcim obsahom:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Nainštalujte Node.js na svoj vývojový počítač (vrátane npm)

  4. Spustite npm install @azure/identity alebo podobný príkaz vo zvolenom správcovi balíkov a nainštalujte najnovšiu verziu knižnice identít.

  5. Bež a spusti node editor.js kód.

  6. Ste vyzvaní na prihlásenie cez okno prehliadača, aby ste požiadali o autentifikáciu.

  7. Odpoveď z API je vytlačená v konzole.

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

Vývoj dotazov a mutácií

Nasledujúce príklady demonštrujú syntax dotazov a mutácií GraphQL pomocou ukážkových dát AdventureWorks. Tieto príklady predpokladajú, že pracujete s Fabric Data Warehouse, ktorý podporuje zápisové operácie (mutácie). Dátové zdroje prístupné cez SQL Analytics Endpointy (ako Lakehouses a zrkadlené databázy) sú len na čítanie a podporujú iba dotazy, nie mutácie.

Prečítajte si tento krátky úryvok schémy GraphQL z AdventureWorks. Definuje Product typ s dotazmi na čítanie jedného produktu alebo zoznam všetkých produktov a mutáciami na vytváranie, aktualizáciu alebo mazanie produktov, pričom podporuje všetky prípady použitia CRUDL (vytváranie, čítanie, aktualizácia, mazanie, zoznam).

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

Prečítajte si údaje vystavené prostredníctvom GraphQL pomocou ľubovoľného dotazu definovaného v schéme. Dopyt products_by_pk získa jeden produkt pomocou jeho primárneho kľúča:

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

Odpoveď:

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

Použite mutácie na createProduct zápis dát a vytvorenie nového produktu s požadovanými parametrami.

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

Odpoveď:

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

Premenné dotazu

Tablu Premenné dotazu na pravej strane karty Dotaz použite na odovzdanie parametrov ako premenných do dotazov alebo mutácií. Premenné fungujú ako premenné v iných programovacích jazykoch. Každá premenná je deklarovaná s názvom používaným na prístup k hodnote v nej uloženej. Podľa predchádzajúceho príkladu mutácie ju mierne upravíte, aby ste použili query premenné.

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

Definujte premenné v paneli Query variables pomocou nasledujúceho príkladu.

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

Premenné robia mutačný kód čistejším, ľahšie čitateľným, testujúcim a upraviteľným. Tiež uľahčujú opätovné použitie tej istej mutácie s rôznymi hodnotami len zmenou premenných.