Een API is, zoals de afkorting zegt, de interface voor een (andere) applicatie. Vaak is het een REST interface. De methoden die zo'n interface gebruikt, zijn eenvoudig, maar om de backend te beschermen moet je nadenken over de vele beperkingen met betrekking tot de infrastructuur: autorisatie, toegangscontrole, verkeersmanagement, monitoring, analyse en versiebeheer. Bovendien is het vaak nodig om SDK's (Software Development Kits) voor één of meerdere programmeertalen te bouwen, te onderhouden en te distribueren. Al met al is dit het soort werk dat ontwikkelaars niet graag willen doen en al helemaal niet omdat het vaak moet gebeuren op het moment dat applicatie al in productie zou moeten zijn.

API Gateway

Amazon API Gateway lost alle bovengenoemde problemen binnen een paar minuten op. De API is enerzijds toegankelijk via applicaties, websites en diensten en verbindt anderzijds een EC2-endpoint of andere endpoint op internet. De Gateway biedt ook toegang tot een AWS Lambdafunctie en dit lijkt een ideale combinatie, waarmee je zeer schaalbare API's kunt implementeren die volledig server-loos zijn.

Je kunt een cache (API Gateway Cache) gebruiken en dan is er Amazon CloudWatch, die robuuste en diepe monitormethoden biedt en Amazon CloudFront voor verminderde latency en DDoS-bescherming. Er is versiebeheer, metering en throttling, daarnaast signing en autorisatie met behulp van AWS Signature versie 4.

In principe kun je gewoon gebruik maken van een paar schermen in de Amazon WS API Gateway console die je door de verschillende stappen leiden. In de eerste maak je de API gewoon. In de tweede wijs je naar de resources, in principe de 'content' die een applicatie biedt. (Zie dit voorbeeld van een veilige dierenwinkel)

Als ontwikkelaar moet je schipperen tussen mogelijkheden, tijd en eisen van de business. Bekijk de special over Development in de Cloud en geef je mening!

Dan kun je een aantal methoden aanklikken, die in principe CRUD-functionaliteit en een representatie aanbieden, in bijv. HTML, JSON of XML. Als alternatief voor de Amazon API Gateway console kun je ook de Swagger-specificatie gebruiken met de API Gateway uitbreidingen en/of de API Gateway Swagger import tool op GitHub. De volgende stap is het specificeren van de instellingen van een methode. Je kunt kiezen uit vier types integratie: Lambdafunctie, HTTP-proxy, AWS Service Proxy en Mock Integration. De Mock Integration kan zeer handig zijn, omdat je daarmee de mogelijkheid krijgt om een API te maken voordat de applicatie zelf af is.

Test en deploy

Er zijn veel functies die ontworpen zijn voor het vereenvoudigen van het testen en de implementatie. Je kunt je API's vanuit de AWS Management Console testen, met volledige toegang tot de HTTP-status code, de respons (body en headers), en de request log.

Je kunt meerdere omgevingen (stages) van een gegeven API met tags zoals dev, beta, prod etc. maken en één of meer stages selectief deployen. Je kunt - maar hoeft niet - elke operatie in elke versie een aparte implementatie geven. Je kunt ook een bestaande API klonen, de kloon naar een aparte stage deployen, doorwerken aan beide en ze bijv. aangepaste domeinnamen geven om meer controle uit te oefenen over de URL van elke service.

De Amazon API Gateway biedt alle vormen van operationele ondersteuning en accepteert handles, monitors en responses op requests. De cache biedt vele configuratiemogelijkheden, ook gebaseerd op een cache-per-stage-basis, met volledige controle over de levensduur van de gecachte responses, en het mappen van request-parameters op cache keys. Requests voor je API's worden vastgelegd in Amazon CloudWatch en gedetailleerde statistieken worden gerapporteerd aan Amazon CloudWatch op een per-stage-per-methode-basis. Administratieve handelingen zoals het maken en configureren van API's worden vastgelegd in AWS CloudTrail voor auditing. Heel belangrijk is de mogelijkheid om requests te throttlen om de backend te beschermen. Je kunt AWS Identity en Access Management (IAM), Amazon Cognito of OAuth cedentials gebruiken om toegang tot individuele methoden toestaan.

Een stuk sneller en eenvoudiger

In de afgelopen vijf jaar is het aantal gepubliceerde API's zeer snel gegroeid dankzij de verspreiding van mobiele apparaten. We zullen in de komende jaren een nog snellere groei zien, als gevolg van de groeiende populariteit van het internet of things (IoT). De Amazon API GateWway biedt een zeer praktische en belangrijke manier om al het werk dat ontwikkelaars hebben rond een API een stuk sneller en eenvoudiger te maken. Het lost zelfs het deadline-probleem uit het begin van het artikel op, omdat je de API kunt schrijven lang voordat je in tijdnood komt.

Probeer het zelf en maak gratis een account aan op AWS