Een API gateway is één voordeur die vóór je backend-services staat en elk binnenkomend verzoek naar de juiste doorstuurt. Clients praten alleen met de gateway, nooit rechtstreeks met de losse services. Onderweg kan hij ook het werk doen dat elke service anders zou herhalen, zoals controleren wie er belt, hoe vaak, en loggen wat er gebeurde.
Stel je de receptie van een groot kantoorgebouw voor. Bezoekers dwalen niet door de gangen op zoek naar de juiste kamer; ze melden zich bij één balie, worden gecheckt, en krijgen te horen waar ze precies moeten zijn. De gateway is die balie voor software. Hij is vooral handig bij microservices, waar tientallen kleine API’s achter de schermen leven en je één nette, veilige plek wilt waar de buitenwereld verbindt.
Omdat hij verzoeken onderweg onderschept, doet een gateway veel van hetzelfde werk als middleware, alleen geplaatst aan de rand van het hele systeem in plaats van binnen één service. De winst is dat gedeelde zaken op één plek wonen. Zonder gateway moet elke service zelf de logintoken checken, verzoeken tellen en zijn eigen logs schrijven, wat neerkomt op dezelfde code vijf keer gekopieerd en vijf kansen om het fout te doen. Zet je er een gateway voor, dan gebeurt dat allemaal één keer, voordat het verzoek ooit een service bereikt. Een mobiele app praat misschien met één adres als api.jouwbedrijf.com, terwijl de gateway achter de schermen de oproep stilletjes verdeelt over de orderservice, de gebruikersservice en de facturatieservice. De app hoeft niet eens te weten dat die bestaan.
Bij TopDevs zetten we een API gateway vóór de services van een klant als er meerdere te beheren zijn, zodat beveiliging en routing op één gecontroleerde plek leven in plaats van overal dubbel.