API of Application Programming Interface presenteert functies en regels die interactie en communicatie tussen verschillende toepassingen mogelijk maken. Deze interfaces vergemakkelijken de integratie van toepassingen, waardoor ontwikkelaars krachtige digitale producten kunnen creëren.
De API bemiddelt tussen toepassingen via verzoeken en antwoorden. Registratie in de applicatie via het bestaande Twitter-account van de gebruiker gebeurt bijvoorbeeld via de Twitter-API die ontwikkelaars in de app hebben geïntegreerd.
De API gebruikt verschillende protocollen en architecturen voor het verzenden van verzoeken en antwoorden:
- XML-RPC - maakt de uitwisseling van functies tussen netwerken mogelijk. XML-RPC gebruikt XML om antwoorden/verzoeken te beschrijven en HTTP-protocollen voor informatieoverdracht van client naar server.
- JSON-RPC is een lichtgewicht RPC vergelijkbaar met XML. Hier is het protocol gecodeerd in JSON; het maakt het mogelijk oproepen naar de server te ontvangen met asynchrone antwoorden.
- SOAP - een eenvoudig objecttoegangsprotocol voor de uitwisseling van gestructureerde informatie bij de implementatie van webdiensten in computernetwerken. SOAP gebruikt XML voor authenticatie, autorisatie en procescommunicatie op besturingssystemen. Het stelt cliënten in staat webdiensten aan te roepen en antwoorden te ontvangen, ongeacht platform en taal.
- REST API (representative state transfer) - een architectuurstijl waarbij client-server implementaties onafhankelijk van elkaar worden gebruikt. REST gebruikt het HTTP-protocol voor communicatie.
In deze post richten we ons op de REST API, definiëren we hem, en analyseren we hoe hij verschilt van andere API's.
REST API definiëren
REST is een architectuurstijl voor het ontwerpen van API's via het HTTP-protocol. Het belangrijkste voordeel ervan is de grote flexibiliteit.
Ontwikkelaars gebruiken REST API overal waar er behoefte is om de gebruiker van een webapplicatie of site rechtstreeks vanaf de server gegevens te verstrekken.
De belangrijkste onderdelen van de REST API:
- Client - een client of programma gelanceerd aan de kant van de gebruiker (op zijn apparaat) die de communicatie initieert.
- Server - een server die API's gebruikt als toegang tot zijn functies en gegevens.
- Resource - elke inhoud (video, tekst, foto) die de server naar de client stuurt.
Hoe de REST API werkt
REST API communiceert via HTTP-verzoeken, waarbij de volgende functies worden uitgevoerd - gegevens creëren, lezen, bijwerken en verwijderen. Ze staan ook bekend als CRUD operaties. REST levert de informatie over aangevraagde bronnen en gebruikt vier methoden om te beschrijven wat er met een bron moet gebeuren:
- POST - het creëren van een bron;
- GET - een bron ophalen;
- PUT - een bron bijwerken;
- DELETE - een bron verwijderen.
Bron
Een resource is een essentieel concept in REST API, een informatie-abstractie. Het kan elke informatie zijn: document, afbeelding, tijdelijke dienst.
De toestand van een bron op een bepaald moment staat bekend als resource representatie, die bestaat uit gegevens, metadata die de gegevens beschrijven, en hypermedia links om klanten te helpen naar de volgende toestand te gaan.
De informatie kan in verschillende formaten aan de klant worden geleverd: JSON, HTML, XLT, Python, of platte tekst. Het populairste en meest gebruikte formaat is JSON, omdat het leesbaar is voor mens en machine, en taalneutraal.
Om toegang te krijgen tot een bron, moet een client een verzoek indienen. Na ontvangst genereert de server een antwoord met gecodeerde gegevens over een bron.
De aanvraagstructuur omvat vier hoofdcomponenten: de HTTP-methode (de eerder genoemde CRUD), eindpunten, headers en body.
De HTTP-methode beschrijft wat er met de bron moet gebeuren. Net hierboven noemden we vier beschikbare methoden: POST, GET, PUT, DELETE.
Het eindpunt bevat een URI - Uniform Resource Identifier, die aangeeft hoe en waar de bron kan worden gevonden. Een URL of Uniform Resource Location is het meest voorkomende URI-type, dat een volledig webadres weergeeft.
Headers bevatten de gegevens met betrekking tot de client en de server. Headers bevatten authenticatiegegevens: API-sleutel, naam, IP-adres die horen bij de computer waarop de server is geïnstalleerd, en ook de informatie over het antwoordformaat.
De body wordt gebruikt om extra informatie naar de server te sturen, zoals gegevens die u wilt toevoegen.
REST API-principes
REST is niet gebonden aan een bepaalde technologie of platform. Het is taalonafhankelijk. Het specificeert ook niet precies hoe de API gebouwd moet worden. Maar het gebruikt zes architecturale beperkingen. De interface kan een geldige REST API genoemd worden door die beperkingen te volgen. Ze beschrijven hoe de server verzoeken verwerkt en erop reageert.
Client-server
De REST API implementeert een client-server architectuurstijl. De client stuurt verzoeken om bronnen en is niet verbonden met de gegevensopslag. De gegevensopslag blijft binnen de server. Servers zijn niet betrokken bij de communicatie met de gebruikersinterface. De client en de server evolueren onderling afhankelijk. Deze factor maakt REST nog flexibeler en schaalbaarder.
Uniforme interface
De uniforme interface is een essentiële factor die de REST API onderscheidt. Het stelt dat er één enkele manier is om met de server te communiceren, waarbij het type toepassing en apparaat geen rol spelen.
De uniforme interface heeft vier principes:
- Identificatie van bronnen. Elke bron moet een identificatie hebben die onafhankelijk is van de staat van de bron. De URL fungeert als identificatie.
- Manipulatie van middelen via representaties. Een bronrepresentatie (die de client heeft) bevat de gegevens die nodig zijn om de bron te verwijderen of te wijzigen. De client stuurt een representatie die de server (een JSON-object) moet wijzigen, verwijderen of toevoegen.
- Zelfbeschrijvende berichten. Dergelijke berichten bevatten alle informatie voor de ontvanger voor zijn begrip. Er is geen extra informatie nodig in aparte documentatie of berichten. Elk bericht bevat voldoende informatie voor de server om het verzoek te ontleden.
- Hypermedia als de motor van de applicatietoestand. Hypermedia vereist het gebruik van links voor elk antwoord, zodat de client andere bronnen kan vinden. In REST wordt hypermedia gebruikt voor alle interacties.
Staatloos
Dit betekent dat de server geen gegevens over de client bevat. Alle informatie die nodig is voor de verwerking van het verzoek is opgenomen in het verzoek. De client slaat alle sessie-informatie op.
Cacheerbaar
Elk antwoord moet de informatie bevatten of het al dan niet in de cache kan worden opgeslagen en hoe lang het antwoord in de cache kan worden opgeslagen. Als het antwoord in de cache kan worden opgeslagen, kan de client bij soortgelijke verzoeken dezelfde gegevens gebruiken zonder herhaaldelijk verzoeken naar de server te sturen. Dit verbetert de prestaties en de beschikbaarheid.
Gelaagd systeem
REST implementeert de lagenhiërarchie, die bepaalde beperkingen oplegt aan het gedrag van componenten. In een gelaagd systeem kunnen componenten alleen de componenten zien die zich op de dichtstbijzijnde niveaus bevinden en die waarmee ze interageren.
Code op aanvraag
Dit is een optionele functie waarmee cliënten code kunnen downloaden en uitvoeren.
Wat onderscheidt REST API?
De zes principes van de REST API kunnen worden beschouwd als de belangrijkste verschillen tussen deze interface en andere types. Daarnaast onderscheiden verschillende parameters REST.
Ten eerste bepaalt de essentie van REST de incompatibiliteit met andere types. Het is een architectuurstijl waarbij een architectuur een reeks vereisten vertegenwoordigt die je moet volgen om een RESTful web service te kunnen aanbieden. Bijvoorbeeld, SOAP en RPC zijn berichtenprotocollen die berichten beschrijven. In tegenstelling tot de architectuurstijl, die alleen de eisen (constraints) specificeert waaraan het bericht moet voldoen.
Structuur
Gewoonlijk volgt API de app-to-app structuur, terwijl REST een andere structuur volgt - Client-Server. Client en server evolueren onafhankelijk van elkaar, wat meer flexibiliteit in het werk biedt.
Formaat voor berichtenuitwisseling
API's gebruiken gewoonlijk specifieke berichtformaten; SOAP gebruikt bijvoorbeeld XML. REST volgt zo'n strikt principe niet. Het kan bijna elk formaat gebruiken om gegevens uit te wisselen. JSON is nu echter het populairst.
Er zijn duidelijke redenen voor de populariteit van JSON - het is een menselijk leesbaar en gemakkelijk te analyseren gegevensuitwisselingsformaat. JSON is taalonafhankelijk, en u kunt het gebruiken met elke taal naast JavaScript.
Flexibiliteit
REST is een flexibele architectuurstijl, zodat ontwikkelaars er veel gebruik van maken. Vergeleken met SOAP - een complexer protocol met geavanceerde beveiligingsfuncties die meer bandbreedte vereisen, bestaat REST uit eenvoudige richtlijnen die ontwikkelaars in staat stellen die vereisten in hun formaat te gebruiken. De architectuur levert hoge prestaties, waardoor het vooral in trek is bij mobiele apparaten, waar downloadsnelheid belangrijk is.
Zoals we zien heeft REST bepaalde voordelen ten opzichte van andere bekende API's. Daarom hebben alle toonaangevende bedrijven zoals Twitter en Google het geïmplementeerd voor hun producten. Het is immers de ideale en eenvoudige manier om gegevens over te dragen aan ontwikkelaars over de hele wereld en een beproefd mechanisme voor het creëren van efficiënte en schaalbare interfaces voor softwareontwikkeling.