API-first is een manier van bouwen waarbij je eerst de interface tussen verschillende softwareonderdelen ontwerpt voordat je aan de rest van de code begint. Je bepaalt dus eerst hoe systemen met elkaar praten via een API, in plaats van dat de interface een bijproduct is van de backend.
Technische werking
- Definieer de behoeften. Je bepaalt welke data er uitgewisseld moet worden en welke acties een gebruiker of ander systeem moet kunnen uitvoeren.
- Schrijf het API contract. Je legt vast in een document (meestal YAML of JSON) welke eindpunten er zijn, wat voor data er binnenkomt en wat er precies teruggeleverd wordt.
- Valideer het ontwerp. Je laat dit contract lezen door de mensen die de frontend en backend bouwen om te checken of het in de praktijk werkt.
- Bouw mock servers. Je maakt een nep-server die precies reageert zoals afgesproken in het contract, zodat de frontend al kan beginnen met bouwen zonder dat de echte database klaar is.
- Parallelle ontwikkeling. De backend bouwt de werkelijke logica terwijl de frontend de interface koppelt aan de mock server.
- Integratie en testen. De echte backend vervangt de mock server en je controleert of alles nog steeds volgens het contract verloopt.
Belangrijke begrippen
- OpenAPI Specification. De standaardtaal waarin je het API contract beschrijft, zodat zowel mensen als machines het begrijpen.
- Swagger UI. Een visuele interface die het OpenAPI document leesbaar maakt, waardoor je direct in je browser kunt testen welke data een endpoint geeft.
- REST APIs. De meest gebruikte architectuur voor dit soort koppelingen, waarbij je werkt met standaard HTTP-methoden zoals GET, POST, PUT en DELETE.
- GraphQL API. Een alternatief voor REST waarbij de opvrager zelf bepaalt welke specifieke velden hij wil ontvangen, wat handig is bij complexe data.
- API Gateway. Een toegangspoort die het verkeer naar je verschillende microservices regelt en zaken als beveiliging en limieten afhandelt.
- Contract testing. Een methode om te controleren of de backend nog steeds precies doet wat er in het oorspronkelijke contract is afgesproken.


