Bouw je een eigen webapplicatie of dashboard dat data uit Fabric nodig heeft? Dan loop je al snel tegen een bekend probleem aan. Rechtstreeks verbinden met een lakehouse of warehouse via SQL-drivers koppelt je applicatie hard aan de onderliggende structuur, en elke schemawijziging breekt je code. Een eigen REST API bouwen kan, maar kost tijd, onderhoud, en meestal ook meerdere versies zodra je datamodel verandert.
De API voor GraphQL in Microsoft Fabric biedt hiervoor een alternatief. In deze blog leggen we uit wat het is, hoe het werkt, en wanneer het een goede keuze is voor het koppelen van maatwerkapplicaties aan je Fabric-omgeving.
GraphQL is een open-source querytaal voor API's, beheerd door de GraphQL Foundation. In tegenstelling tot een traditionele REST API vraagt een applicatie met GraphQL in één query precies de data op die nodig is, niet meer en niet minder. Dat voorkomt zowel het ophalen van te veel data (over-fetching) als het moeten doen van meerdere aanroepen voor gerelateerde gegevens (under-fetching).
Microsoft Fabric brengt deze aanpak naar het platform als een aparte item-type: de API voor GraphQL. Je kiest een databron, zoals een lakehouse, warehouse of database, en geeft aan welke tabellen en kolommen je wilt ontsluiten. Fabric genereert vervolgens automatisch het schema, de bijbehorende query's en mutaties, en een werkend endpoint. Er is geen eigen backend-code of infrastructuur nodig.
Belangrijk om te weten: de API voor GraphQL bevindt zich op dit moment nog in preview.
Zonder GraphQL kies je meestal tussen twee opties om Fabric-data aan een applicatie beschikbaar te stellen, en beide hebben duidelijke nadelen.
Directe databaseverbindingen. Een applicatie verbindt via SQL-drivers rechtstreeks met een lakehouse of warehouse. Dat koppelt je applicatiecode hard aan het onderliggende schema, wat betekent dat elke wijziging in je datamodel een aanpassing in de applicatie vereist. Daarnaast moet elke applicatie zelf connectiestrings, credentials en driver-afhankelijkheden beheren.
Een eigen REST API bouwen. Met een framework als ASP.NET of Node.js bouw je zelf een backend, inclusief routing en een aparte laag voor datatoegang. Verandert je datastructuur, dan eindig je al snel met meerdere API-versies naast elkaar, en risico op het over- of under-fetchen van data.
De API voor GraphQL neemt deze twee knelpunten weg. Fabric genereert het schema en de resolvers automatisch, en doordat een GraphQL-schema kan groeien zonder bestaande query's te breken, hoef je geen aparte versies bij te houden zoals bij een REST API.
Het opzetten van een API voor GraphQL verloopt via de Fabric-portal, in een paar stappen:
1. Je maakt een nieuw GraphQL-item aan in je workspace.
2. Je koppelt een of meerdere databronnen, zoals een Fabric Data Warehouse, een Fabric Lakehouse via het SQL Analytics-endpoint, of een gespiegelde database (denk aan Azure SQL Database, Azure Cosmos DB of Snowflake).
3. Je kiest welke tabellen, views of stored procedures je wilt ontsluiten, en eventueel welke kolommen daarbinnen.
4. Optioneel leg je relaties tussen objecten vast, zodat een applicatie in één query genest gerelateerde data kan opvragen.
5. Je stelt rechten in om te bepalen wie toegang heeft tot de API.
Zodra dit is ingericht, is het endpoint direct bruikbaar. Applicaties moeten zich authenticeren via Microsoft Entra ID, en de gebruikte gebruiker of service principal heeft minimaal Execute-rechten op de API nodig. Fabric levert daarnaast een ingebouwde editor waarin je query's en mutaties kunt testen voordat je ze in een applicatie gebruikt.
Een salesafdeling gebruikt een intern gebouwde webapplicatie om klantgegevens te raadplegen die in een Fabric-warehouse staan. In plaats van een eigen backend te bouwen, koppelt de ontwikkelaar de applicatie rechtstreeks aan de API voor GraphQL, en haalt in één query zowel klantgegevens als de bijbehorende orders op, zonder meerdere aanroepen te hoeven doen.
Een organisatie ontwikkelt een mobiele app waarmee magazijnmedewerkers actuele voorraadniveaus kunnen inzien. De app haalt precies de velden op die nodig zijn voor het scherm, wat de app snel en licht houdt, ook op een matige netwerkverbinding.
Een integratieontwikkelaar wil dat een extern systeem periodiek gegevens ophaalt uit een Fabric Lakehouse zonder een aparte API te hoeven onderhouden. Door een GraphQL-endpoint te gebruiken, blijft de koppeling werken ook als er later nieuwe kolommen aan het onderliggende datamodel worden toegevoegd.
De API voor GraphQL is in preview, wat betekent dat functionaliteit nog kan veranderen. Voor interne tools en experimentele koppelingen is dat vaak geen probleem, voor bedrijfskritische, extern gerichte applicaties is het verstandig dit mee te wegen.
Daarnaast ondersteunt de API voor GraphQL op dit moment een specifieke set databronnen: Fabric Data Warehouse, SQL-database in Fabric, Fabric Lakehouse via het SQL Analytics-endpoint, en gespiegelde databases zoals Azure SQL Database en Snowflake. Werk je met een databron die hier niet bij staat, dan is deze aanpak nog niet direct bruikbaar.
Authenticatie verloopt verplicht via Microsoft Entra ID. Zorg dat dit goed is ingericht voordat je een applicatie in productie neemt, inclusief de juiste rechten op zowel de API als de onderliggende databron.
Bij een REST API vraag je vaak een vaste set velden op per endpoint, wat kan leiden tot te veel of te weinig opgehaalde data. Met GraphQL geef je in de query zelf aan welke velden je nodig hebt, ook als die uit meerdere gerelateerde objecten komen. Dat scheelt zowel dataverkeer als het aantal aanroepen.
Op dit moment onder andere Fabric Data Warehouse, SQL-database in Fabric, Fabric Lakehouse via het SQL Analytics-endpoint, en gespiegelde databases zoals Azure SQL Database, Azure Cosmos DB, Azure Databricks en Snowflake.
Nee. Fabric genereert automatisch het schema, de query's, mutaties en resolvers op basis van de databron die je selecteert. Je hoeft geen eigen infrastructuur op te zetten of te onderhouden.
Authenticatie verloopt via Microsoft Entra ID. De aanroepende gebruiker of service principal heeft Execute-rechten op de API nodig, en afhankelijk van de gekozen connectiviteitsoptie mogelijk ook rechten op de onderliggende databron zelf.
De functionaliteit is bruikbaar, maar bevindt zich nog in preview. Voor interne toepassingen en experimenten is dat over het algemeen geen probleem. Voor bedrijfskritische, extern gerichte applicaties raden we aan de preview-status mee te wegen en dit bij publicatie te checken.
De API voor GraphQL maakt het een stuk eenvoudiger om maatwerkapplicaties te koppelen aan je Fabric-omgeving, zonder dat je daar zelf een backend voor hoeft te bouwen en te onderhouden. Voor interne tools, mobiele apps en integraties met externe systemen kan dat aanzienlijk tijd schelen.
Wil je weten of dit een goede oplossing is voor jouw situatie? Neem contact met ons op. Bij Mount Data denken we graag mee over hoe je je Fabric-data het beste ontsluit voor de applicaties die jouw organisatie nodig heeft.
Deze website maakt gebruik van cookies voor een goede werking van de site.
Cookies zijn kleine tekstbestanden die door websites kunnen worden gebruikt om de gebruikerservaring efficiënter te maken. Volgens de wet mogen wij cookies op uw apparaat opslaan als ze strikt noodzakelijk zijn voor het functioneren van deze site. Voor alle andere soorten cookies hebben wij uw toestemming nodig. Deze site maakt gebruik van verschillende soorten cookies. Sommige cookies worden geplaatst door diensten van derden die op onze pagina’s worden weergegeven.