API whats in a service?

API staat voor Application Programming Interface en is bedoeld om op een relatief eenvoudige manier aan data te komen van andere software en systemen dan die van jezelf.

Wat bedoelen we daar nu mee?

Een API is in essentie de koppeling tussen 2 verschillende (onderdelen van) programma’s. De kracht ligt in de abstractie die gemaakt wordt. Een simpel voorbeeld:

Ik stuur een bestand vanuit Word door om te printen. Ikzelf noch mijn pc weet hoe die printer aangestuurd moet worden, welke code ervoor zorgt dat mijn bestand op de correcte manier geprint word. En toch komt mijn bestand er foutloos uit.

Wat er achterliggend gebeurt is Word die voor de API van de printer aanspreekt met de informatie die hij nodig heeft om de taak te kunnen volbrengen. De manier waarop Word dit doorstuurd is via een API.

Hoewel de API’s die we voor deze workshop gaan gebruiken een ander doel hebben, doen ze in essentie hetzelfde. Zij gaan voor ons een service/data aanspreken waarvan wij de broncode niet kennen en die binnenhalen op ons systeem waardoor we deze serivce/data wel kunnen verwerken met een minimum aan effort.

Even de voordelen op een rijtje:

  • Vanuit een applicatie informatie met een cloud service uitwisselen (denk aan takeaway, …​) → eenvoudige toegang tot een grote hoeveelheid data

  • Beveiliging gebeurt vaak door de provider van de API service, hier zal je dus zelf (bijna) nooit aan moeten denken.

  • Minimum aan benodigde data versturen/verkrijgen

De wereld van API’s

Zoals je hierboven wel al kan vermoeden dat er 100000000+ soorten API’s zijn. Hieronder lichten we de belangrijkste kenmerken op.

Publieke, private en partner API’s

Er zijn 3 manier waarop een API ter beschikking gesteld kan worden.

  1. publiek: voor iedereen beschikbaar, principeel zonder limiet

  2. privé: enkel voor intern gebruik, blijven binnen een bedrijf en worden gebruikt om eigen software aan te spreken

  3. partner: deze zal 'publiek' beschikbaar zijn maar je zal specifieke rechten nodig hebben om deze te gaan gebruiken; vaak is dit vanuit bedrijven voor strategische partners/bedrijven maar dit kan ook onder de vorm van betaling zijn voor API’s die publiek bruikbaar zijn.

REST, SOAP, …​

Voor het schrijven van een API zijn verschillende standaarden afgesproken. De systemen/software tussen welke de API actief zal zijn moet uiteraard bekend zijn met deze standaard voor de connectie zal slagen. Uit alle standaarden worden vandaag REST en SOAP het meeste gebruikt. We gaan niet in op de details hoe deze geschreven worden maar willen jullie wel de verschillen meegegeven:

Kenmerk REST, representational state transfer SOAP, simple object access protocol

Benadering van de werking

Functie gericht

Data gericht

Manier waarop de data verzonden wordt

XML

Zuivere teskt, HTML, XML, JSON, YAML,…​

Transfer protocols

HTTP, SMTP, UDP,…​

HTTP

Voordelen

Hoge security, standaard, uitbreidbaar

Schaalbaar, sneller performance, haalbaar in eenvoudige browser, flexibel

Nadelen

Tragere performance, complexer en minder flexibel tov REST

Minder security mogelijkheden, niet haalbaar in sterk verdeelde omgevingen

Werking van web API’s

Dit is zeker niet alles wat er weten valt over API’s Deze links zijn goede bronnen van informatie: