Opprette en API for GraphQL i Fabric og legge til data
Kom i gang med Fabric API for GraphQL ved å opprette en API, og koble deretter til en datakilde for å vise dataene du valgte gjennom API-en. Fabric bygger GraphQL-skjemaet automatisk basert på dataene dine, og programmene er klare til å koble til på få minutter.
Forutsetning
- Aktiver innstillingen «Brukere kan opprette stoffelementer» for leieradministrator.
Opprette en API for GraphQL
Slik oppretter du en API for GraphQL:
Velg Dataingeniør fra listen over arbeidsbelastninger på hjemmesiden for Fabric-portalen.
Velg API for GraphQL (forhåndsvisning).
Alternativt kan du velge Ny>API for GraphQL (forhåndsvisning) fra et hvilket som helst arbeidsområde i Dataingeniør ing.
Skriv inn et navn for elementet, og velg Opprett.
Du har nå en fullstendig funksjonell API for å få tilgang til dataene i Fabric.
Koble til en datakilde, og bygg skjemaet
På dette tidspunktet er API-en klar, men den eksponerer ingen data. API-er for GraphQL er definert i et skjema organisert i form av typer og felt, i et sterkt skrevet system. Fabric genererer automatisk det nødvendige GraphQL-skjemaet basert på dataene du velger å vise til GraphQL-klienter.
I den nye API-en velger du en datakilde som skal vises ved å velge Velg datakilde.
Velg deretter tilkoblingsalternativet for API-en:
Her kan du definere hvordan API-klienter kan få tilgang til API-en for å utføre GraphQL-forespørsler basert på to forskjellige alternativer:
- Enkel pålogging (SSO): Bruk klientlegitimasjon til å koble til datakilder, noe som betyr at den godkjente API-brukeren må ha tilgang til den underliggende datakilden. Hvis du for eksempel eksponerer Lakehouse-data til API-klientene dine, må den godkjente brukeren ha tilgang til både API-en og Lakehouse. Mer spesifikt kjøre tillatelser til GraphQL API (Kjør spørringer og mutasjoner alternativet når du legger til direkte tilgangstillatelser) og lese eller skrive tillatelser som kreves i datakilden av valget tilsvarende. Alternativt kan brukeren legges til som arbeidsområdemedlem med en bidragsyterrolle der både API-en og datakildeelementene er plassert, noe som vil gi nødvendig tilgang til begge elementene fra ett sted. Hvis du vil ha mer informasjon, kan du se Gi brukere tilgang til arbeidsområder.
- Lagret legitimasjon: Bruk lagret legitimasjon til å koble til datakilder, noe som betyr at den godkjente API-brukeren ikke krever direkte tilgang til datakilden. En lagret legitimasjon deles for å få tilgang til dataene mellom API-en og underliggende tabeller i datakilden. Hvis du for eksempel eksponerer Lakehouse-data til API-klientene dine, trenger den godkjente brukeren bare å ha direkte tilgang til API-en (kjør spørringer og mutasjoner-alternativet når du legger til direkte tilgangstillatelser) og ikke Lakehouse. En lagret legitimasjon brukes til å koble API-en til datakilden og deles av alle godkjente API-brukere. Dette alternativet kreves hvis du eksponerer en Azure-datakilde, for eksempel en Azure SQL-database via GraphQL. Når du har valgt OK, blir du bedt om å opprette en ny lagret legitimasjon etter at du har valgt en datakilde i neste trinn hvis det ikke finnes en lagret legitimasjon for den som allerede er på plass.
Når de er valgt, håndheves disse alternativene for alle datakilder som senere legges til API-en. Det er ikke mulig å blande enkel pålogging og lagret legitimasjon i samme API. Selv om du kan bruke UPN-er (User Principal Names) eller Service Principal Names (SPN) til å koble til API-en, støtter tjenestekontohavere bare enkel pålogging (SSO) for øyeblikket. Brukerkontohavere kan dra nytte av SSO eller lagret legitimasjon, avhengig av sikkerhetskravene dine.
Merk
API for GraphQL krever at klientprogrammer bruker Microsoft Entra til godkjenning. Klientprogrammet må være registrert og konfigurert tilstrekkelig til å utføre API-kall mot Fabric. Appen som er registrert i Microsoft Entra krever Item.Execute.All API-tillatelser for Power Bi-tjeneste. Du finner en ende-til-ende-opplæring med instruksjoner og eksempelkode for både brukerkontohavere og tjenestekontohavere hos Connect Applications.
OneLake-datahuben vises. velg datakilden du vil koble til. I eksemplet nedenfor velger vi et AdventureWorks SQL Analytics-endepunkt som er koblet til en speilvendt database. Velg Filter for å se bare bestemte typer Fabric-datakilder, eller søk etter et bestemt nøkkelord. Når du er klar, velger du Koble til.
Hent data-skjermen vises, der du kan velge hvilke objekter du vil vise i GraphQL-skjemaet.
Merk av for de individuelle tabellene eller de lagrede prosedyrene du vil vise i API-en. Hvis du vil merke alle objektene i en mappe, merker du av i avmerkingsboksen med datakildenavnet øverst.
Velg Last inn for å starte genereringsprosessen for GraphQL-skjema.
Skjemaet genereres, og du kan begynne å skrive GraphQL-spørringer (lese, liste) eller mutasjoner (opprette, oppdatere, slette) for å samhandle med dataene dine.
API-en for GraphQL er nå klar til å godta tilkoblinger og forespørsler. Du kan bruke API-redigeringsprogrammet til å teste og prototype GraphQL-spørringer og Skjemautforsker for å bekrefte datatypene og feltene som vises i API-en.
Sammendrag av tillatelser
Tabellen nedenfor oppsummerer de ulike støttede permutasjonene og minimum nødvendige tillatelser for klienter som får tilgang til GraphQL-API-en:
API-anroper | Datakildetilkobling | Nødvendige GraphQL API-tillatelser | Nødvendige datakildetillatelser | Entra-appomfang |
---|---|---|---|---|
Brukerkontohaver (UPN) | Enkel pålogging (SSO) | Kjør spørringer og mutasjoner på API-nivå | Riktige lese-/skrivetillatelser gitt til UPN på datakilden | Item.Execute.All |
Tjenestekontohaver (SPN) | Enkel pålogging (SSO) | Kjør spørringer og mutasjoner på API-nivå | Riktige lese-/skrivetillatelser som gis til SPN-en på datakilden | Item.Execute.All |
Brukerkontohaver (UPN) | Lagret legitimasjon | Kjør spørringer og mutasjoner på API-nivå | Riktige lese-/skrivetillatelser som gis til den lagrede legitimasjonen (tilkoblingen) i datakilden | Item.Execute.All |
Tjenestekontohaver (SPN) | Lagret legitimasjon | Støttes for øyeblikket ikke | Støttes for øyeblikket ikke | Støttes for øyeblikket ikke |