Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Fabric API graphQL-hez való egyik fő előnye, hogy több adatforrást – például lakehouse-t, raktárat és adatbázist – tesz elérhetővé egyetlen egységes API-végponton keresztül. Ez azt jelenti, hogy az alkalmazások egyetlen GraphQL-lekérdezésben különböző forrásokból tudnak adatokat lekérni, így nem szükséges külön csatlakozni több API-hoz vagy adatbázishoz.
Előfordulhat például, hogy az ügyféladatok az egyik raktárban, a leltáradatok pedig egy másik tóházban vannak. Két különálló API-hívás helyett mindkét forrást egyszerre kérdezheti le a GraphQL API-n keresztül, csökkentve a hálózati terhelést, és egyszerűsítheti az alkalmazás kódját.
A többforrásos lekérdezések működése
Ha több adatforrásra kiterjedő GraphQL-lekérdezést ad ki, az API automatikusan leküldi az egyes adatforrásokra irányuló kéréseket párhuzamosan, majd egyetlen válaszban egyesíti az eredményeket. Ez a megközelítés:
- A körutazások csökkentése: Az alkalmazás több egymást követő hívás helyett egy kérést küld
- Javítja a teljesítményt: A párhuzamos végrehajtás gyorsabb válaszidőt jelent
- Egyszerűbb ügyfélkód: Egyetlen API-felülettel dolgozhat, függetlenül attól, hogy hol tárolják az adatokat
Fontos
A több forrásból történő lekérdezésekre a következő korlátozások vonatkoznak:
- A különböző adatforrásokra kiterjedő típusok közötti kapcsolatok nem hozhatók létre. A kapcsolatok csak egyetlen adatforráson belül működnek.
- Az egyes adatforrásokra irányuló egyedi kérések párhuzamosan, garantált sorrend nélkül futnak.
- Az adatforrásra irányuló minden kérés független – nincs több forrásra kiterjedő tranzakció.
Példa lekérdezésre
Üzleti forgatókönyv: Tegyük fel, hogy olyan irányítópultot készít, amely egymás mellett jeleníti meg az ügyféladatokat és a termékleltár állapotát. Az ügyféladatok egy értékesítési raktárban (ContosoSales) találhatók, míg a termékleltár egy külön lakehouse -ban (ContosoInventory) van kezelve, amelyet az ellátási lánc rendszerei frissítenek. Többforrásos támogatás nélkül két külön API-hívást kell kezdeményeznie, két különböző kapcsolatot kell kezelnie, és az adatokat saját maga kell kombinálnia az alkalmazáskódban.
A GraphQL-hez készült Fabric API-val egyetlen lekérdezésben mindkét forrásból lekérheti az adatokat:
query {
customers (first: 1) {
items {
FirstName
LastName
}
}
inventories (first: 1) {
items {
Name
}
}
}
Ez az egyetlen kérés egyszerre kéri le az ügyfélrekordokat a ContosoSales adatforrásból és a készletelemekből a ContosoInventory adatforrásból, és egyetlen válaszba egyesíti őket. Az irányítópult két helyett egy API-hívással kapja meg az összes szükséges adatot.
A kérés kimenete a következő:
{
"data": {
"customers": {
"items": [
{
"FirstName": "Orlando",
"LastName": "Gee"
}
]
},
"inventories": {
"items": [
{
"Name": "AWC Logo Cap"
}
]
}
}
}
A válaszstruktúra tükrözi a lekérdezés struktúráját.
data Az objektumon belül két legfelső szintű mező (customers és inventories) felel meg a két lekérdezésnek. Minden mező tartalmaz egy items tömböt a tényleges eredményekkel. Az customers elemekhez hasonló FirstNameLastNametulajdonságok tartoznak, míg az inventories elemekhez hasonló Nametulajdonságok találhatók – pontosan a lekérdezésben kért módon.
A lekérdezési nézet így néz ki a kérés végrehajtásakor: