Wat is een API?
U hebt waarschijnlijk de term 'API' te zien gekregen. Besturingssysteem-, webbrowser- en app-updates kondigen vaak nieuwe API's aan voor ontwikkelaars. Maar wat is een API?
Application Programming Interface
De term API is een acroniem en staat voor "Application Programming Interface."
Denk aan een API zoals een menu in een restaurant. Het menu biedt een lijst met gerechten die u kunt bestellen, samen met een beschrijving van elk gerecht. Wanneer u opgeeft welke menu-items u wilt, doet de keuken van het restaurant het werk en biedt u enkele voltooide gerechten. Je weet niet precies hoe het restaurant dat eten bereidt, en dat hoef je ook niet echt te doen.
Evenzo bevat een API een reeks bewerkingen die ontwikkelaars kunnen gebruiken, samen met een beschrijving van wat ze doen. De ontwikkelaar hoeft niet per se te weten hoe bijvoorbeeld een besturingssysteem een dialoogvenster "Opslaan als" opbouwt en presenteert. Ze moeten alleen weten dat het beschikbaar is voor gebruik in hun app.
Dit is geen perfecte metafoor, omdat ontwikkelaars mogelijk hun eigen gegevens aan de API moeten verstrekken om de resultaten te krijgen, dus misschien is het meer een chique restaurant waar je enkele van je eigen ingrediënten kunt leveren waarmee de keuken zal werken.
Maar het is in grote lijnen correct. API's stellen ontwikkelaars in staat om tijd te besparen door gebruik te maken van de implementatie van een platform om het nitty-gritty werk te doen. Dit helpt het aantal ontwikkelaars van code-ontwikkelaars te verminderen en zorgt ook voor meer samenhang tussen apps voor hetzelfde platform. API's kunnen de toegang tot hardware- en softwarebronnen regelen.
API's maken het leven gemakkelijker voor ontwikkelaars
Stel dat u een app voor een iPhone wilt ontwikkelen. Het iOS-besturingssysteem van Apple biedt een groot aantal API's, zoals elk ander besturingssysteem, om het u gemakkelijker te maken.
Als u bijvoorbeeld een webbrowser wilt insluiten om een of meer webpagina's weer te geven, hoeft u uw eigen webbrowser niet opnieuw te programmeren alleen voor uw toepassing. U gebruikt de WKWebView API om een WebKit (Safari) -browserobject in uw toepassing in te sluiten.
Als u foto's of video's wilt maken van de camera van de iPhone, hoeft u geen eigen camera-interface te schrijven. U gebruikt de camera-API om de ingebouwde camera van de iPhone in uw app in te sluiten. Als er geen API's zouden bestaan om dit gemakkelijk te maken, zouden app-ontwikkelaars hun eigen camerasoftware moeten maken en de invoer van de camera-hardware moeten interpreteren. Maar de ontwikkelaars van het besturingssysteem van Apple hebben al dit harde werk gedaan, zodat de ontwikkelaars de camera-API gewoon kunnen gebruiken om een camera in te sluiten en vervolgens door te gaan met het bouwen van hun app. En wanneer Apple de camera-API verbetert, profiteren alle apps die ervan afhankelijk zijn automatisch van die verbetering.
Dit geldt voor elk platform. Wilt u bijvoorbeeld een dialoogvenster maken op Windows? Daar is een API voor. Wilt u vingerafdrukverificatie ondersteunen op Android? Daar is ook een API voor, dus je hoeft niet elke vingerafdruksensor van elke Android-fabrikant te testen. Ontwikkelaars hoeven het wiel niet steeds opnieuw uit te vinden.
API's beheren toegang tot bronnen
API's worden ook gebruikt om de toegang tot hardwareapparaten en softwarefuncties te regelen die een toepassing mogelijk niet per se hoeft te gebruiken. Daarom spelen API's vaak een grote rol bij beveiliging.
Als u bijvoorbeeld een website hebt bezocht en een bericht in uw browser hebt gezien dat de website vraagt om uw exacte locatie te zien, probeert die website de geolocatie-API in uw webbrowser te gebruiken. Webbrowsers stellen API's als deze bloot om het voor webontwikkelaars gemakkelijk te maken om toegang te krijgen tot uw locatie; ze kunnen gewoon vragen "waar ben je?" En de browser doet het harde werk om toegang te krijgen tot GPS of nabijgelegen Wi-Fi-netwerken om je fysieke locatie te vinden.
Browsers stellen deze informatie echter ook bloot via een API, omdat het mogelijk is om de toegang ertoe te beheren. Wanneer een website toegang wenst tot uw exacte fysieke locatie, is de enige manier om deze te verkrijgen via de locatie-API. En wanneer een website het probeert te gebruiken, kunt u - de gebruiker - ervoor kiezen om dit verzoek toe te staan of te weigeren. De enige manier om toegang te krijgen tot hardwarebronnen, zoals de GPS-sensor, is via de API, zodat de browser de toegang tot de hardware kan regelen en kan beperken welke apps kunnen doen.
Ditzelfde principe wordt gebruikt in moderne mobiele besturingssystemen zoals iOS en Android, waar mobiele apps machtigingen hebben die kunnen worden afgedwongen door de toegang tot API's te regelen. Als een ontwikkelaar bijvoorbeeld probeert toegang te krijgen tot de camera via de camera-API, kunt u het toestemmingsverzoek weigeren en heeft de app geen toegang tot de camera van uw apparaat..
Bestandssystemen die machtigingen gebruiken - zoals ze doen op Windows, Mac en Linux - hebben die machtigingen afgedwongen door de bestandssysteem-API. Een typische toepassing heeft geen directe toegang tot de onbewerkte fysieke harde schijf. In plaats daarvan moet de app toegang hebben tot bestanden via een API.
API's worden gebruikt voor communicatie tussen services
API's worden ook voor allerlei andere redenen gebruikt. Als u bijvoorbeeld ooit een Google Maps-object op een website heeft ingesloten, gebruikt die website de Google Maps API om die kaart in te sluiten. Google stelt API's als deze bloot aan webontwikkelaars, die vervolgens de API's kunnen gebruiken om complexe objecten rechtstreeks op hun website te plegen. Als API's als deze niet bestonden, zouden ontwikkelaars mogelijk hun eigen kaarten moeten maken en hun eigen kaartgegevens moeten opgeven om een beetje interactieve kaart op een website te zetten.
En omdat het een API is, kan Google de toegang tot Google Maps op websites van derden controleren, en ervoor zorgen dat deze op een consistente manier worden gebruikt in plaats van een frame dat de website van Google Maps bevat, in de war te brengen, bijvoorbeeld.
Dit is van toepassing op veel verschillende online diensten. Er zijn API's voor het aanvragen van tekstvertalingen van Google Translate, of het insluiten van Facebook-opmerkingen of tweets van Twitter op een website.
De OAuth-standaard definieert ook een aantal API's waarmee u kunt inloggen op een website met een andere service, bijvoorbeeld om uw Facebook-, Google- of Twitter-accounts te gebruiken om in te loggen op een nieuwe website zonder een nieuwe gebruikersaccount alleen voor die site te maken . API's zijn standaardcontracten die bepalen hoe ontwikkelaars communiceren met een service en het type uitvoer dat deze ontwikkelaars mogen verwachten terug te ontvangen.
Als je dit hebt doorstaan, zul je een beter idee hebben van wat een API is. Uiteindelijk hoeft u niet echt te weten wat een API is tenzij u een ontwikkelaar bent. Maar als u ziet dat een softwareplatform of -service nieuwe API's voor verschillende hardware of services heeft toegevoegd, zou het voor ontwikkelaars eenvoudiger moeten zijn om van dergelijke functies te profiteren..
Beeldcredits: patpitchaya / Shutterstock.com.