Een Application Programming Interface (API) stelt computerprogrammeurs in staat om toegang te krijgen tot de functionaliteit van gepubliceerde softwaremodules en diensten op het web. API’s spelen een belangrijke rol bij app-ontwikkeling en netwerkprogrammering. Lees meer over wat een API is en waarom ontwikkelaars ze gebruiken.
Wat is een API?
Een API definieert datastructuren en subroutine-aanroepen die bestaande applicaties uitbreiden met nieuwe functies. Ze worden ook gebruikt om nieuwe applicaties te bouwen bovenop andere softwarecomponenten. Op het web maken API’s het mogelijk om apps te integreren met diensten als Google Maps en Facebook. Sommige API’s ondersteunen netwerkprogrammering. Netwerkprogrammering is een vorm van softwareontwikkeling voor toepassingen die verbinding maken en communiceren via computernetwerken, inclusief internet. Netwerk-API’s bieden toegangspunten tot protocollen en herbruikbare softwarebibliotheken. Netwerk-API’s ondersteunen webbrowsers, webdatabases en veel mobiele apps. Ze worden breed ondersteund in veel programmeertalen en besturingssystemen.
API’s en socketprogrammering
Traditionele netwerkprogrammering volgde een client-servermodel. De primaire API’s die worden gebruikt voor client-server-netwerken zijn geïmplementeerd in socketbibliotheken die in besturingssystemen zijn ingebouwd. Berkeley-sockets en Windows Sockets (Winsock) API’s waren bijvoorbeeld jarenlang de twee belangrijkste standaarden voor het programmeren van sockets.
Procedureoproepen op afstand
RPC-API’s breiden de basistechnieken voor netwerkprogrammering uit door toepassingen toe te voegen om functies op externe apparaten aan te roepen in plaats van er alleen berichten naar te verzenden. Met de explosie van groei op het web, is XML-RPC naar voren gekomen als een populair mechanisme voor RPC.
Simple Object Access Protocol (SOAP)
SOAP is eind jaren negentig ontwikkeld als een netwerkprotocol met XML als berichtformaat en HyperText Transfer Protocol (HTTP) als transport. SOAP genereerde een trouwe aanhang van webserviceprogrammeurs en werd veel gebruikt voor bedrijfsapplicaties.
Representatieve staatsoverdracht (REST)
REST is een ander programmeermodel dat webservices ondersteunt. Net als SOAP gebruiken REST API’s HTTP, maar in plaats van XML gebruiken REST-applicaties vaak een Javascript Object Notation (JSON). REST en SOAP verschillen in hun benadering van statusbeheer en beveiliging, beide belangrijke overwegingen voor netwerkprogrammeurs. Mobiele apps kunnen al dan niet netwerk-API’s gebruiken, maar apps die vaak REST gebruiken.
De toekomst van API’s
Zowel SOAP als REST worden nog steeds actief gebruikt voor de ontwikkeling van nieuwe webservices. Omdat het een nieuwere technologie is dan SOAP, is de kans groter dat REST zich ontwikkelt en andere uitlopers van API-ontwikkeling produceert. Besturingssystemen zijn ook geëvolueerd om de vele nieuwe Network API-technologieën te ondersteunen. In moderne besturingssystemen zoals Windows 10, bijvoorbeeld, blijven sockets een kern-API, met HTTP en andere extra ondersteuning bovenop voor RESTful-achtige netwerkprogrammering. Zoals vaak het geval is op computergebied, hebben nieuwere technologieën de neiging om sneller uit te rollen dan oude verouderd raken. Zoek naar interessante nieuwe API-ontwikkelingen, vooral op het gebied van cloud computing en het Internet of Things (IoT), waar de kenmerken van apparaten en hun gebruiksmodellen verschillen van traditionele netwerkprogrammeeromgevingen.