Wat zijn API's en waarom zou ik ze gebruiken? De data-economie in de agrovoeding

De data-economie staat en valt met goede systemen om data te delen. Als bedrijf wil je je waarschijnlijk vooral richten op strategische keuzes die de toekomst van je onderneming mee bepalen. Wat is onze digitale strategie? Welk verdienmodel is haalbaar en interessant om nieuwe markten aan te boren? Maar heb je wel al stilgestaan bij het technische luik? Op welke manier gaat je bedrijf datadelen en welke technologie zorgt ervoor dat dit eenvoudig maar ook op een zeer betrouwbare manier kan?

API’s zijn ‘the way to go’

In dit artikel tonen we je dat technische keuzes van datadelen een essentieel onderdeel zijn van je digitale strategie. Hierbij focussen we op het gebruik van API’s, net omdat ze zo veel voordelen bieden.

“API’s laten toe om producten te maken die de gebruiker een naadloze ervaring geven. De techniek moet zo juist zitten, dat deze eigenlijk niet zichtbaar is in de toepassing.”

Stephane Jans
In The Pocket

API staat voor “Application Programming Interface”, een interactieve koppeling waardoor twee stukken software of computerprogramma’s met elkaar kunnen communiceren. Ze zijn de fundering van de digitalisering van onze hedendaagse maatschappij, vaak zonder het te weten, zijn ze nu al ingebed in ons dagelijks leven en de applicaties die we gebruiken zoals itsme, payconiq, of een vergaderverzoek via mail, dat automatisch in je agenda terecht komt.

API’s zijn alomtegenwoordig, bijzonder laagdrempelig en maken de integratie van systemen heel eenvoudig. Ontwikkelaars kunnen met API’s ook aanzienlijk sneller apps ontwikkelen, wat heel belangrijk is om de huidige vraag van o.a. je klanten te kunnen bijhouden.

Technische aspecten

We zijn alom bekend met interfaces die informatie uit machines omzetten naar iets wat wij als mens kunnen begrijpen. Denk vb. aan een tekst of een afbeelding die opgeslagen is op een pc en die op een computerscherm wordt weergegeven. API’s zijn interfaces die net hetzelfde doen maar tussen 2 machines. Een API zorgt ervoor dat 2 stukken software zo autonoom mogelijk kunnen communiceren. De informatie uit de ene software wordt door de API omgezet in begrijpelijke informatie voor een ander systeem.

Een gekend voorbeeld daarvan is het gebruik van payconiq. Deze app checkt eerst autonoom met jouw bank of de verrichting mag uitgevoerd worden om ze vervolgens bij positief antwoord ook uit te voeren. Of de app waarmee je de verwarming thuis kan aanzetten vooraleer je zelf thuis bent. De Google Maps API wordt gebruikt om kaartjes te integreren op allerhande websites.

Het softwaresysteem dat een commando stuurt vb. de vraag tot informatie “heb je perceelsinformatie van landbouwer X”, noemt men de client. Via de API wordt de vraag doorvertaald naar een server, database, software. Deze laatste stuurt een antwoord terug vb. ja, ik heb perceelsinformatie beschikbaar van landbouwer X. Vervolgens kan een andere API de vraag van de client “geef me de percelen van landbouwer X waar aardappelen als hoofdteelt staan” omzetten in een commando, begrijpbaar voor de database, waardoor deze als antwoord de correcte percelen doorgeeft.

Het bovenstaande voorbeeld illustreert meteen ook de voordelen van API’s. De client kan zonder menselijke tussenkomst de database bevragen, waardoor de client zo steeds de meest actueel beschikbare gegevens tot zijn beschikking heeft. Een heel verschil met vb. sturen van een mail aan een persoon om een export te krijgen uit een database. Daarenboven wordt de informatie aangeleverd in een formaat dat door software kan geïnterpreteerd worden en dus als nodig autonoom verder verwerkt of gestockeerd kan worden.

Van FTP naar API

Sinds de opkomst van digitalisering hoeft men uiteraard al lang geen mail meer te sturen om informatie uit een databank te krijgen. Er waren reeds voor de opkomst van de API’s oplossingen beschikbaar om data te delen.

Een goed gekend en ook nog vaak gebruikte technologie is FTP (File Transfer Protocol). FTP is echter file-gebaseerd, waardoor je de afnemer niet kan laten kiezen welke bestanden hij juist wil. Enkel de files die klaargezet zijn, zijn beschikbaar. Dit houdt in dat de FTP-server permanent moet ingericht worden, dat files op die server bewaard moeten worden. Doordat FTP een file gebaseerd systeem is, moeten er ook veel ad hoc afspraken gemaakt worden tussen de data-leverancier en -gebruiker over de uitvoering en de codering van de inhoud van de file. Om deze afspraken wat te vergemakkelijken, worden hiervoor vaak standaarden/standaard-codering EDI gebruikt. Een goedgekend voorbeeld hiervan zijn de EDI-standaarden die vanuit Agroconnect beschikbaar zijn vb. EDI-zuivel of EDIcrop. De standaard beschrijft de inhoud en de structuur van de documenten, waardoor 1-op-1 afspraken niet meer nodig zijn. Iedere ketenpartner spreekt dezelfde taal en wisselt standaard gestructureerde documenten uit.

Er zijn in de loop der jaren andere generaties van technologie ontstaan vaak net om meer flexibele bevraging en data uitwisseling toe te laten. Met de komst van het web, zijn er web-API’s ontstaan die gebruik maken van de webtechnologie om de interactie tussen de machines te creëren. Een REST-API is een soort web-API, waarbij REST staat voor REpresentation State Transfer, wat refereert naar een bepaalde soort software architectuur, die binnen een bepaalde set richtlijnen wordt gemaakt. In onze Best Practice Guide “API’s exporteren” kan je hierover meer lezen.

Voordelen van het gebruik van API’s

Web-API’s bouwen voort op de web-standaarden die alom gekend zijn om twee machines met elkaar te doen praten. Veel van de nodige afspraken om dit mogelijk te maken, zijn gemeengoed en een steeds groeiende groep van specialisten kan dit bouwen. Ook de structuur van een API is veel eenvoudiger.

Een bijkomende voordeel van API-gebruik, is dat je gemakkelijk nieuwe versies van data binnen kan trekken. Omdat je niet weet wanneer de data-aanbieder precies nieuwe data zal aanbieden, kan deze laatste dit laten weten via events en een event-bus. De data-gebruiker kan zich abonneren op gepubliceerde events, waardoor deze nieuws krijgt op het moment dat de data-leverancier een nieuwe versie uitstuurt. Op dat moment kan de data-gebruiker de API aanspreken om de info door te krijgen.

Ook wanneer je een nieuwe versie van de API maakt, kan je heel eenvoudig de vorige versie live houden, zodat de afnemers de tijd krijgen om zich aan te passen, maar nieuwe afnemers wel al gebruik kunnen maken van de meest recente versie. Dit houdt wel in dat je als bedrijf een goed versiebeheer moet hebben.

De API-checklist – DjustConnect helpt ze je afvinken

Bij het ter beschikking stellen van een API aan (keten)partners, zijn er een aantal zaken cruciaal. Stephane Jans, In The Pocket, vatte ze voor ons samen in een checklist die hij toelichtte in een webinar. Belangrijke aspecten zijn: veiligheid, authenticatie, throttling, specificaties, events, versiebeheer, consent management, onthologie en standaarden.

Het Vlaamse datadeelplatform DjustConnect zorgt ervoor dat bedrijven veilig en eenvoudig data kunnen delen en gebruiken, met respect voor de landbouwer, die veelal data-eigenaar is. DjustConnect is een API-gebaseerd platform. Data-aanbieders kunnen data beschikbaar stellen via API’s in de ConnectShop, waar geïnteresseerde partijen een aanvraag kunnen doen om deze data te gebruiken voor een digitale tool. De ConnectShop zorgt dat meerdere geïnteresseerden de weg naar je beschikbare API vinden. Maar DjustConnect faciliteert ook de data-uitwisseling zelf op technisch vlak net door bedrijven te ondersteunen in het afvinken van de API-checklist.

Zo verzorgt DjustConnect het API-management van je API. Hierbij neemt DjustConnect het beheer van de API op zich. Concreet wil dit zeggen dat we jouw API beschikbaar maken, het gebruiksbeleid afdwingen en de toegang controleren. Daarenboven verzamelen we metadata over het gebruik van de API zodat je bv. inzicht krijgt in hoe frequent elke data-afnemer jouw API bevraagt.

Onderstaande checklist geeft aan waar je allemaal moet op letten en wat DjustConnect nog meer doet om alle gebruikers te ontzorgen.

Checklist Belang Hoe DjustConnect je helpt
Security Beveiligde toegang tot jouw data. DjustConnect zorgt voor een veilige verbinding en er is geen direct contact tussen data-aanbieder en data-afnemer.
Authenticatie Is de gebruiker wel diegene die hij beweert te zijn? Data-aanbieders valideren het inkomende SSL client certificaat van DjustConnect of OAuth2 wordt voorzien als authenticatie.
Throttling Is er een beveiliging op het systeem, zodat je maar een maximale load aan aanvragen op je systeem kan krijgen? In DjustConnect kan, desgewenst, het aantal opvragingen per tijdseenheid beperkt worden.
Specificaties Dit is technische documentatie voor de developers. OpenAPI specificaties voor de beschikbare API’s worden beschikbaar gesteld op het developer portal van DjustConnect.
Events (optioneel) De data-aanbieder verwittigt de afnemers wanneer nieuwe gegevens beschikbaar zijn vb. nieuwe labo analyse beschikbaar. DjustConnect biedt de mogelijkheid aan om, via events, data-afnemers op de hoogte te brengen van updates van de beschikbare gegevens.
Versiebeheer Elke versie van de API heeft een eigen versie nummer. DjustConnect laat toe dat nieuwe versies van een API beschikbaar komen, maar dwingt contractueel af dat de oude versie minstens 3 maand samen met de nieuwe versie beschikbaar blijft voor bestaande data-afnemers. Daarenboven heeft DjustConnect een strikt beleid rond het overzetten van consent tussen opeenvolgende versies.
Consent management Is de manier waarop de toestemmingen van de data-eigenaar op het gebruik van de API afgedwongen worden. Toegang tot een API via DjustConnect kan er enkel komen na het verkrijgen van de juiste toestemmingen met name die van de aanbieder van de API en – indien de landbouwer eigenaar is van de data – die van de landbouwer. Elke landbouwer en data-aanbieder heeft een DjustConnect-dashboard met een overzicht van alle data-aanvragen, waarop hij deze toestemmingen kan geven of intrekken. Dit mechanisme zit vervat in de juridische contracten die elke gebruiker aanvaardt.
Ontologie en standaarden Data standaarden zijn gedocumenteerde afspraken over representatie, formaat, definitie, structurering, overdracht, manipulatie, gebruik en beheer van gegevens. Een ontologie is een datamodel ontwikkeld binnen een domein, dat alle entiteiten beschrijft als ook de relaties tussen de entiteiten onderling weergeeft. DjustConnect verplicht geen ontologie. Maar ontologie en standaardisatie maken het aan de kant van de afnemer veel gemakkelijker om data te integreren. Ze verhogen hierdoor vaak ook het gebruik en dus de waarde van de API. Daarom gaan we graag samen op zoek naar bestaande standaarden en mogelijkheden.

Met het aanbieden van deze diensten willen we datadelen in de Vlaamse agrovoedingssector een stap vooruitbrengen. DjustConnect faciliteert, maar het is aan de bedrijven om de API’s te bouwen.

Verder lezen? Check de Best Practice Guide “Mijn API op DjustConnect”.