Ga naar inhoud

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.

FunQL documentatie FunQL documentatie
FunQL combineert een open specificatie, uitgebreide documentatie en softwarecomponenten tot één samenhangend ecosysteem

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.

FunQL Playground FunQL Playground
De FunQL Playground maakt het mogelijk om zonder installatie direct met FunQL te experimenteren

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.

Bekijk de FunQL-documentatie

Probeer de FunQL Playground

FunQL GitHub organisatie FunQL GitHub organisatie
De verschillende open-source repositories vormen samen het FunQL-ecosysteem

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.