Del via


Forespørg om flere datakilder i Fabric API til GraphQL

En af de vigtigste fordele ved Fabric API for GraphQL er muligheden for at eksponere flere datakilder—såsom lakehouses, lagre og databaser—gennem et enkelt samlet API-endpoint. Det betyder, at dine applikationer kan hente data fra forskellige kilder i en enkelt GraphQL-forespørgsel, hvilket eliminerer behovet for at forbinde til flere API'er eller databaser separat.

For eksempel kan du have kundedata i ét lager og lagerdata i et andet lakehouse. I stedet for at lave to separate API-kald kan du forespørge begge kilder samtidig via dit GraphQL API, hvilket reducerer netværksoverhead og forenkler din applikationskode.

Hvordan multi-kilde forespørgsler fungerer

Når du udsteder en GraphQL-forespørgsel, der spænder over flere datakilder, fordeler API'en automatisk individuelle forespørgsler parallelt til hver datakilde og kombinerer derefter resultaterne til et enkelt svar. Denne fremgangsmåde:

  • Reducerer rundture: Din applikation foretager én anmodning i stedet for flere på hinanden følgende opkald
  • Forbedrer ydeevnen: Parallel udførelse betyder hurtigere samlede responstider
  • Forenkler klientkoden: Du arbejder med et enkelt API-interface uanset hvor data er gemt

Important

Multi-kilde forespørgsler har følgende begrænsninger:

  • Du kan ikke skabe relationer mellem typer, der spænder over forskellige datakilder. Relationer fungerer kun inden for én enkelt datakilde.
  • Individuelle forespørgsler til hver datakilde kører parallelt uden garanteret rækkefølge.
  • Hver anmodning til en datakilde er uafhængig—der er ingen transaktion, der spænder over flere kilder.

Eksempel på forespørgsel

Forretningsscenarie: Forestil dig, at du bygger et dashboard, der viser kundeinformation og produktstatus side om side. Dine kundedata ligger i et salgslager (ContosoSales), mens dit produktlager administreres i et separat lakehouse (ContosoInventory), som opdateres af dine forsyningskædesystemer. Uden multi-source support skal du lave to separate API-kald, administrere to forskellige forbindelser og selv kombinere dataene i din applikationskode.

Med Fabric API for GraphQL kan du hente data fra begge kilder i én forespørgsel:

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

Denne enkeltforespørgsel henter kundeposter fra ContosoSales-datakilden og lagerposter fra ContosoInventory-datakilden parallelt, og kombinerer dem til ét svar. Dit dashboard får alle de data, det har brug for, med ét API-kald i stedet for to.

Outputtet for anmodningen er:

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

Svarstrukturen spejler forespørgselsstrukturen. Inde i objektet data har du to topniveau-felter (customers og inventories), der svarer til de to forespørgsler, du har lavet. Hvert felt indeholder et items array med de faktiske resultater. Elementerne customers har egenskaber som FirstName og LastName, mens elementerne inventories har egenskaber som Name—præcis som ønsket i forespørgslen.

Sådan ser forespørgselsvisningen ud, når du udfører denne anmodning:

Skærmbillede af editorskærmen, der viser en forespørgsel, der spænder over to datakilder.