Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Jednou z kľúčových výhod Fabric API pre GraphQL je možnosť sprístupniť viacero dátových zdrojov – ako sú jazerné domy, sklady a databázy – prostredníctvom jedného jednotného API endpointu. To znamená, že vaše aplikácie môžu získavať dáta z rôznych zdrojov v jednom GraphQL dotaze, čím sa eliminuje potreba samostatného pripájania k viacerým API alebo databázam.
Napríklad môžete mať údaje o zákazníkoch v jednom sklade a údaje o zásobách v inom dome pri jazere. Namiesto dvoch samostatných API volaní môžete dotazovať obe zdroje súčasne cez GraphQL API, čím znížite sieťovú záťaž a zjednodušíte aplikačný kód.
Ako fungujú viaczdrojové dotazy
Keď zadáte GraphQL dotaz, ktorý zahŕňa viacero dátových zdrojov, API automaticky rozdeľuje jednotlivé požiadavky do každého zdroja dát paralelne a potom výsledky spojí do jednej odpovede. Tento prístup:
- Znižuje počet spiatočných ciest: Vaša aplikácia vykoná jednu požiadavku namiesto viacerých po sebe idúcich volaní
- Zlepšuje výkon: Paralelné vykonávanie znamená rýchlejšie celkové reakčné časy
- Zjednodušuje to klientsky kód: Pracujete s jedným API rozhraním bez ohľadu na to, kde sú dáta uložené
Important
Viaczdrojové dotazy majú nasledujúce obmedzenia:
- Nemôžete vytvárať vzťahy medzi typmi, ktoré pokrývajú rôzne zdroje dát. Vzťahy fungujú len v rámci jedného dátového zdroja.
- Individuálne požiadavky na každý zdroj dát sa vykonávajú paralelne bez garantovaného poradia.
- Každá požiadavka na zdroj dát je nezávislá – neexistuje žiadna transakcia zahŕňajúca viacero zdrojov.
Príklad dotazu
Obchodný scenár: Predstavte si, že vytvárate dashboard, ktorý vedľa seba zobrazuje informácie o zákazníkoch a stav zásob produktov. Vaše zákaznícke dáta sú uložené v predajnom sklade (ContosoSales), zatiaľ čo vaše produktové zásoby sú spravované v samostatnom jazernom dome (ContosoInventory), ktorý je aktualizovaný vašimi dodávateľskými systémami. Bez podpory viacerých zdrojov by ste museli robiť dva samostatné API volania, spravovať dve rôzne pripojenia a sami kombinovať dáta vo svojom aplikačnom kóde.
S Fabric API pre GraphQL môžete získať dáta z oboch zdrojov v jednom dotaze:
query {
customers (first: 1) {
items {
FirstName
LastName
}
}
inventories (first: 1) {
items {
Name
}
}
}
Táto jediná požiadavka získava záznamy o zákazníkoch zo zdroja dát ContosoSales a položky zásob zo zdroja dát ContosoInventory paralelne, pričom ich spája do jednej odpovede. Váš dashboard získa všetky potrebné dáta jedným API volaním namiesto dvoch.
Výstup žiadosti je:
{
"data": {
"customers": {
"items": [
{
"FirstName": "Orlando",
"LastName": "Gee"
}
]
},
"inventories": {
"items": [
{
"Name": "AWC Logo Cap"
}
]
}
}
}
Štruktúra odpovedí zrkadlí štruktúru dotazu. Vo vnútri objektu data máte dve polia na vrchnej úrovni (customers a inventories), ktoré zodpovedajú dvom dotazom, ktoré ste vykonali. Každé pole obsahuje items pole s aktuálnymi výsledkami. Položky customers majú vlastnosti ako FirstName a LastName, zatiaľ čo inventories položky majú vlastnosti ako Name—presne tak, ako je požadované v dotaze.
Takto vyzerá zobrazenie dotazu pri spustení tejto požiadavky: