Del via


Spør flere datakilder i Fabric API for GraphQL

En av hovedfordelene med Fabric API for GraphQL er muligheten til å eksponere flere datakilder—som lakehouses, varehus og databaser—gjennom et enkelt samlet API-endepunkt. Dette betyr at applikasjonene dine kan hente data fra forskjellige kilder i en enkelt GraphQL-spørring, og eliminerer behovet for å koble til flere API-er eller databaser separat.

For eksempel kan du ha kundedata i ett lager og lagerdata i et annet innsjøhus. I stedet for å gjøre to separate API-kall, kan du spørre begge kildene samtidig via GraphQL-API-et ditt, noe som reduserer nettverksoverhead og forenkler applikasjonskoden din.

Hvordan flerkilde-spørringer fungerer

Når du sender en GraphQL-spørring som spenner over flere datakilder, fordeler API-et automatisk individuelle forespørsler parallelt til hver datakilde, og kombinerer deretter resultatene til ett enkelt svar. Denne tilnærmingen:

  • Reduserer rundturer: Applikasjonen din gjør én forespørsel i stedet for flere påfølgende anrop
  • Forbedrer ytelsen: Parallell kjøring gir raskere totale responstider
  • Forenkler klientkode: Du jobber med ett enkelt API-grensesnitt uansett hvor data lagres

Viktig!

Multikilde-spørringer har følgende begrensninger:

  • Du kan ikke skape relasjoner mellom typer som spenner over ulike datakilder. Relasjoner fungerer kun innenfor én enkelt datakilde.
  • Individuelle forespørsler til hver datakilde kjører parallelt uten garantert rekkefølge.
  • Hver forespørsel til en datakilde er uavhengig—det er ingen transaksjon som strekker seg over flere kilder.

Spørringseksempel

Forretningsscenario: Tenk deg at du bygger et dashbord som viser kundeinformasjon og produktlagerstatus side om side. Kundedataene dine ligger i et salgslager (ContosoSales), mens produktlageret ditt administreres i et eget lakehouse (ContosoInventory) som oppdateres av forsyningskjedesystemene dine. Uten støtte for flere kilder må du gjøre to separate API-kall, administrere to forskjellige tilkoblinger, og kombinere dataene selv i applikasjonskoden din.

Med Fabric API for GraphQL kan du hente data fra begge kildene i én enkelt spørring:

query {
  customers (first: 1) {
    items {
      FirstName
      LastName
    }
  }
  inventories (first: 1) {
    items {
      Name
    }
  }
}

Denne ene forespørselen henter kundeposter fra ContosoSales-datakilden og lagerposter fra ContosoInventory-datakilden parallelt, og kombinerer dem til ett svar. Dashbordet ditt får all data det trenger med ett API-kall i stedet for to.

Utdataene for forespørselen er:

{
  "data": {
    "customers": {
      "items": [
        {
          "FirstName": "Orlando",
          "LastName": "Gee"
        }
      ]
    },
    "inventories": {
      "items": [
        {
          "Name": "AWC Logo Cap"
        }
      ]
    }
  }
}

Svarstrukturen speiler spørringsstrukturen. Inne i objektet data har du to toppnivåfelt (customers og inventories) som tilsvarer de to spørringene du gjorde. Hvert felt inneholder et items array med de faktiske resultatene. Elementene customers har egenskaper som FirstName og LastName, mens elementene inventories har egenskaper som Name—akkurat som etterspurt i forespørselen.

Slik ser spørringsvisningen ut når du utfører denne forespørselen:

Skjermbilde av redigeringsskjermen som viser en spørring som strekker seg over to datakilder.