Sdílet prostřednictvím


Rozhraní Fabric API pro editor GraphQL

Rozhraní Fabric API pro GraphQL poskytuje grafické vývojové prostředí GraphQL přímo v prohlížeči, které umožňuje interaktivní prostředí pro skládání, testování a zobrazení živých výsledků vašich GraphQL dotazů a mutací.

Kdo používá editor GraphQL

Editor GraphQL je nezbytný pro:

  • Vývojáři aplikací před implementací v aplikacích prototypují a testují dotazy na data Fabric.
  • Datoví inženýři kteří prozkoumávají architekturu datového jezera (lakehouse) a skladiště dat a ověřují návrhy schémat GraphQL
  • Přispěvatelé do pracovních prostorů Fabric testují oprávnění k přístupu k datům a řeší problémy s dotazy.
  • Vývojáři BI se učí strukturu rozhraní API a vytvářejí vzory přístupu k datům pro vlastní aplikace.
  • Vývojové týmy spolupracují na vývoji dotazů a řešení potíží s přístupem k datům v pracovních prostorech Fabric

Editor použijte vždy, když potřebujete interaktivně vyvíjet, testovat nebo ladit dotazy GraphQL na zdroje dat Fabric.

Začínáme s editorem GraphQL

Pokud chcete začít používat editor GraphQL, postupujte takto:

  1. Otevřete položku rozhraní GraphQL API – Přejděte do svého pracovního prostoru ve Fabricu a otevřete položku GraphQL API.

  2. Přístup k editoru – Výběr dotazu v levém dolním rohu obrazovky portálu

    Snímek obrazovky znázorňující, kde se v levém dolním rohu obrazovky Fabric zobrazí možnost Dotaz

  3. Napište svůj dotaz – zadejte dotazy GraphQL přímo na kartě Dotaz . Použijte IntelliSense s klávesovými zkratkami:

    • Windows: CTRL + mezerník
    • macOS: Command + Mezerník

    Snímek obrazovky editoru rozhraní API, na které je karta Dotaz rozdělená na podokna Spustit, Proměnné dotazu a Výsledky

  4. Spusťte dotaz – výběrem příkazu Spustit spusťte dotaz a načtěte data z vašeho zdroje dat.

Generování kódu

Editor rozhraní API automaticky vygeneruje často používaný kód Pythonu nebo Node.js, který odráží dotaz GraphQL nebo mutaci, které aktuálně testujete v editoru. Při vytváření prototypu a upřesnění dotazů se vygenerovaný kód odpovídajícím způsobem aktualizuje. Jakmile budete s výsledky spokojeni, můžete zobrazit a zkopírovat vygenerovaný kód a spustit ho místně pro účely testování nebo ho znovu použít v procesu vývoje aplikace.

Důležité

Vygenerovaný kód používá interaktivní přihlašovací údaje prohlížeče a měl by se používat jenom pro účely testování. V produkčním prostředí vždy zaregistrujte aplikaci v Microsoft Entra a použijte odpovídající client_id a rozsahy. Kompletní příklad s ukázkovým kódem najdete na webu Connect Applications.

Jak začít:

  1. Napište dotaz – v editoru dotazů zadejte následující ukázkový dotaz (nebo vlastní):

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Spusťte dotaz – Výběrem možnosti Spustit spusťte dotaz a před pokračováním ověřte, že funguje správně v editoru.

  3. Vygenerovat kód – Vyberte tlačítko Generovat kód a pak vyberte upřednostňovaný programovací jazyk (Python nebo JavaScript/Node.JS):

    Snímek obrazovky editoru rozhraní API s rozevíracím seznamem pro výběr programovacího jazyka pro vygenerovaný kód

  4. Pak můžete vygenerovaný kód zkopírovat a uložit ho jako soubor v místní složce. V závislosti na zvoleném jazyce proveďte místní testování podle těchto rychlých kroků:

Python

  1. Vytvořte soubor s názvem editor.py a vložte vygenerovaný kód z výše uvedeného ukázkového dotazu.

  2. Spuštěním příkazu python -m venv .venvvytvořte virtuální prostředí .

  3. venv Aktivace spuštěním .venv\Scripts\activate nebo source .venv/bin/activate.

  4. Nainstalujte požadovanou závislost spuštěním pip install azure-identitypříkazu .

  5. Spusťte kód pomocí python editor.pypříkazu .

  6. Zobrazí se výzva k přihlášení prostřednictvím okna prohlížeče k ověření žádosti.

  7. Odpověď z rozhraní API se vytiskne 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. Vytvořte soubor s názvem editor.js a vložte vygenerovaný kód z výše uvedeného ukázkového dotazu.

  2. Ve stejné složce jako editor.jsvytvořte package.json soubor s následujícím obsahem:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Instalace Node.js na vývojovém počítači (včetně npm)

  4. Spuštěním npm install @azure/identity nebo podobným příkazem ve zvoleném správci balíčků nainstalujte nejnovější verzi knihovny identit.

  5. Spusťte node editor.js, aby se kód vykonal.

  6. Zobrazí se výzva k přihlášení prostřednictvím okna prohlížeče k ověření žádosti.

  7. Odpověď z rozhraní API se vytiskne 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 dotazů a mutací

Následující příklady ukazují syntaxi dotazů a mutací GraphQL s použitím ukázkových dat AdventureWorks. V těchto příkladech se předpokládá, že pracujete s Fabric Data Warehouse, který podporuje operace zápisu (mutací). Zdroje dat přístupné prostřednictvím koncových bodů SQL Analytics (jako jsou Lakehouses a zrcadlené databáze) jsou jen pro čtení a podporují pouze dotazy, ne mutované.

Podívejte se na tento krátký výňatek schématu GraphQL z AdventureWorks. Definuje Product typ s dotazy pro čtení jednoho produktu nebo seznam všech produktů a mutacemi pro vytvoření, aktualizaci nebo odstranění produktů, což podporuje všechny případy použití CRUDL (vytvoření, čtení, aktualizace, seznam, odstranění).

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

Čtení dat vystavených prostřednictvím GraphQL pomocí libovolného dotazu definovaného ve schématu Dotaz products_by_pk načte jeden produkt podle primárního klíče:

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

Odpověď:

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

Pomocí mutací createProduct můžete zapsat data a vytvořit nový produkt s požadovanými parametry.

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

Odpověď:

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

Proměnné dotazu

Pomocí podokna Proměnné dotazu na pravé straně karty Dotaz můžete předávat parametry jako proměnné dotazům nebo mutacím. Proměnné fungují jako proměnné v jiných programovacích jazycích. Každá proměnná je deklarována názvem použitým pro přístup k hodnotě uložené v ní. Pomocí předchozího příkladu s mutací ji upravíte mírně tak, aby používala proměnné dotazu.

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

Pomocí následujícího příkladu definujte proměnné v podokně Proměnných dotazu .

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

Proměnné usnadňují čitelnost, testování a úpravu kódu s proměnlivým kódem. Také usnadňují opakované použití stejné mutace s různými hodnotami pouhým změnou proměnných.