Project: Tevreden API

Voor mijn toenmalige werkgever Tevreden BV, een onderzoeksbureau in klanttevredenheid, ontwikkelde ik een JSON API waarmee klanten en derde partijen diensten en rapportages in eigen sites of software konden integreren.

Tevreden BV

Tevreden BV (inmiddels opgegaan in The Feedback Company) was een onderzoeksbureau gespecialiseerd in tevredenheidsonderzoek via internet. Het bedrijf faciliteerde onderzoek voor complete branches zoals kinderopvang, autobedrijven en apotheken. Ik heb er meer dan 10 jaar gewerkt en in die tijd een groot deel van de applicatie gebouwd. Klanten konden hiermee geautomatiseerd vragenlijsten uitsturen, en de resultaten analyseren door middel van geavanceerde tools.
Veel klanten wilden hun resultaten en rapportages ook op hun eigen websites integreren. Daarnaast waren er steeds meer grote organisaties die de onderzoeksfunctionaliteit in hun eigen systemen wilden integreren. Eerder had ik al een SOAP XML webservice gebouwd, maar die was functioneel erg beperkt en lastiger om te gebruiken of uit te breiden. Dus ben ik met een schone lei begonnen en heb ik een nieuwe JSON API ontwikkeld.

Dancer framework

Het in house ontwikkelde onderzoeksplatform ("Evaluation") was ontwikkeld in Perl5 en had al een lange historie. Het bevatte daardoor veel lastig schaalbare/onderhoudbare legacy code. Een groot deel daarvan is door mij en mijn collega's in de loop der tijd gerefactored naar meer moderne en modulaire code.

Onderdeel daarvan was gebruik van betere frameworks, in het bijzonder Perl Dancer. De API was het eerste project waar we dit hebben ingezet. Dit micro framework dat losjes geinspireerd is op Python Flask beviel dermate goed dat we Dancer hierna voor vrijwel alle nieuwe projecten hebben gebruikt.

API Blueprint

Een goede API valt en staat met goede documentatie. Het is handig om daar te beginnen, of eigenlijk, bij een api specificatie waarvan html-documentatie gegenereerd kan worden. Destijds heb ik daar API Blueprint voor gebruikt. Tegenwoordig zou ik eerder voor de breder ondersteunde OpenAPI specificatie gaan.

Voor klanten en partners

De eerste use cases voor de API was relatief eenvoudig. Een partner van Tevreden BV had een feed nodig met filterbare reviews, om te tonen op de eigen website. Verdere features, zoals het versturen van vragenlijsten via de API, zijn er later bijgebouwd. Soms kwamen (grote) klanten ook met specifieke verzoeken die we generiek inbouwden. Nog interessanter werd het toen we zelf de API ook gingen gebruiken.

Voor Tevreden zelf

Tevreden liep op gegeven moment tegen problemen op toen het steeds lastiger werd om Perl programmeurs te vinden. Uiteindelijk is besloten om bouw van nieuwe functionaliteit te outsourcen, en daarvoor geen Perl meer te gebruiken. Maar het wiel opnieuw uitvinden bleek geen optie. Dus is besloten om de API hiervoor in te zetten, oa door hem uit te breiden met endpoints om de rapportage- en benchmarkengine te ontsluiten.

Huidige situatie

Ik heb zelf eind 2017 ontslag genomen bij Tevreden, als laatste Perl developer. Het bedrijf is nog een tijd zonder in house developers doorgegaan. Inmiddels is het bedrijf opgegaan in The Feedback Company. De Tevreden API is echter nog steeds online, en wordt ook nog actief gebruikt. Daar ben ik toch wel een klein beetje trots op.

Heb jij ook een project waar je mijn hulp bij kan gebruiken?

Ik help je graag! Neem contact met me op, en we bespreken je wensen.