FunQL¶
Van een eerste idee tot een compleet open-source ecosysteem ontwikkelde Xtracked FunQL: een uniforme aanpak voor het ontwerpen en bevragen van moderne API's.
Van uiteenlopende API's naar één consistente aanpak¶
FunQL begon met een eenvoudige vraag:
Waarom moeten ontwikkelaars voor vrijwel iedere REST API opnieuw leren hoe gegevens kunnen worden gefilterd, gesorteerd en doorzocht?
Hoewel veel API's vergelijkbare mogelijkheden bieden, verschilt de manier waarop ontwikkelaars deze kunnen gebruiken vaak aanzienlijk. Iedere API introduceert eigen queryparameters, conventies en documentatie. Daardoor moeten ontwikkelaars zich telkens opnieuw verdiepen in dezelfde functionaliteit.
FunQL is ontwikkeld om consistente querymogelijkheden toe te voegen aan moderne REST API's.
FunQL is een open-source specificatie waarmee bestaande REST API's op een consistente manier kunnen worden uitgebreid met krachtige querymogelijkheden. Rondom die specificatie werd een compleet ecosysteem van software, documentatie en voorbeeldprojecten ontwikkeld.
Het vraagstuk¶
Tijdens de ontwikkeling van API-platformen werd binnen Xtracked steeds duidelijker dat de grootste uitdaging vaak niet in de techniek zit, maar in de manier waarop gegevens beschikbaar worden gemaakt.
Standaarden zoals OpenAPI beschrijven welke gegevens een API aanbiedt, maar laten veel vrijheid in de manier waarop gebruikers gegevens kunnen filteren, sorteren en combineren. Daardoor ontstaan tussen API's vaak verschillende conventies en implementaties.
De uitdaging was daarom niet om nóg een querytaal te ontwikkelen, maar om een aanpak te ontwerpen die eenvoudig te leren is, prettig integreert met bestaande REST API's en tegelijkertijd voldoende flexibiliteit biedt voor complexe toepassingen.
Daarom werd niet alleen de specificatie ontwikkeld, maar ook een compleet ecosysteem van software, documentatie en voorbeeldprojecten waarmee ontwikkelaars FunQL direct kunnen begrijpen, testen en toepassen.
De ontwikkeling¶
FunQL werd volledig binnen Xtracked ontwikkeld als open-source initiatief.
Vanaf de eerste ontwerpkeuzes stond niet de implementatie centraal, maar de ervaring van ontwikkelaars die dagelijks met API's werken. Daarom werd vanaf het begin geïnvesteerd in een compleet ecosysteem rondom de FunQL-specificatie.
Tijdens het project werd gewerkt aan onder andere:
Ontwerp van de FunQL-specificatie
Softwarearchitectuur
Parser en query-engine
.NET-implementatie
OpenAPI-specificaties
Interactieve Playground
Developer Portal en documentatie
Voorbeeldprojecten en referentie-implementaties
Publicatie als open-source project op GitHub
Door specificatie, software, documentatie en voorbeeldprojecten gelijktijdig te ontwikkelen ontstond een platform waarmee ontwikkelaars niet alleen de querytaal konden gebruiken, maar deze ook direct konden begrijpen, testen en integreren in bestaande applicaties.
Het resultaat¶
Het project groeide uit tot een compleet open-source ecosysteem waarin verschillende onderdelen elkaar versterken.
FunQL bestaat tegenwoordig uit een officiële specificatie, uitgebreide online documentatie, een .NET-implementatie, een interactieve Playground, een publieke Playground API, een OpenAPI-specificatie en diverse voorbeeldprojecten.
Deze onderdelen maken het mogelijk om de querytaal niet alleen te bestuderen, maar ook direct toe te passen binnen bestaande REST API's of als basis voor nieuwe API-ontwerpen.
Samen vormen deze onderdelen een complete referentie-implementatie voor organisaties die consistente querymogelijkheden willen toevoegen aan hun REST API's.
Zelf experimenteren met FunQL?
De documentatie en interactieve Playground zijn openbaar beschikbaar en laten zien hoe FunQL in de praktijk werkt.
Belangrijke mijlpalen¶
2023
- Eerste concepten en ontwerp van de FunQL-specificatie
- Start van de ontwikkeling van de query-engine
2025
- Eerste publieke open-source release
- Publicatie van FunQL .NET
- Lancering van de Playground API
- Lancering van de interactieve Playground
- Publicatie van documentatie
- Publicatie van voorbeeldprojecten
Wat dit project laat zien¶
FunQL laat zien dat goede software begint met een goed ontwerp.
Door complexe API-vraagstukken terug te brengen tot een consistente en begrijpelijke aanpak ontstond een oplossing die verder gaat dan een softwarebibliotheek alleen. Het project laat zien hoe softwareontwikkeling, API-ontwerp, documentatie en open source elkaar kunnen versterken wanneer ze vanaf het begin als één geheel worden ontworpen.
Die manier van denken vormt de basis van de werkwijze van Xtracked.
Complexiteit terugbrengen tot eenvoud.
Interesse in een vergelijkbaar project?¶
Ieder project begint met het begrijpen van het vraagstuk.
Bent u benieuwd wat Xtracked voor uw project kan betekenen?
Neem gerust contact op.