Wil je je app koppelen aan Facebook zodat deze automatisch posts kan genereren, of aan Instagram zodat je foto's met bepaalde hashtags kunt reposten?
U kunt ook YouTube-video's op uw website opnemen. Met Application Programming Interfaces kunt u al deze taken en meer uitvoeren (API's).
Verschillende applicaties kunnen op een veilige en gestandaardiseerde manier met elkaar "praten" dankzij API's zoals de Instagram API, Facebook API en YouTube API.
Met andere woorden, een programma kan functies of gegevens uit een ander stuk software halen en deze gebruiken om zijn eigen functies of gebruikerservaring te verbeteren. Maar hoe kunnen apps deze verzoeken doen, verwerken en erop reageren op een manier die anderen kunnen begrijpen?
Dat hangt af van hoe de API is gemaakt. Bij het bespreken van API-ontwerpen (Application Programming Interface) is het gebruikelijk om SOAP versus REST te vergelijken, twee van de meest prominente API-paradigma's.
Zodra SOAP API's (Simple Object Access Protocol) de gouden standaard werden voor bedrijven als Oracle, Sun en PayPal, was er ongeveer een jaar later een gelijke en tegengestelde reactie op REST API's van Google, Amazon en eBay.
In dit bericht zullen we SOAP API's vergelijken en contrasteren met REST API's, zodat u kunt beslissen welke het beste is voor uw doeleinden.
We beginnen met het definiëren van de API.
Wat is API?
Application Programming Interface wordt API genoemd. API's zijn in wezen een verzameling methoden en functies die de ontwikkeling van apps mogelijk maken. Ze krijgen toegang tot de informatie en functies van verschillende programma's, services of besturingssystemen.
Ze dienen als een soort tussenpersoon tussen verschillende softwaresystemen. Ze maken "praten" mogelijk tussen twee niet-verbonden programma's.
Laten we het voorbeeld nemen van een effectenmakelaar die actief betrokken is bij de handel en de financiële markten. Een verzameling van geautomatiseerde handelsalgoritmen kan via een API worden verbonden met het favoriete handelsmakelaarsplatform van de handelaar. Hierdoor kunt u als handelaar elektronische transacties uitvoeren of real-time offertes en prijsgegevens bekijken.
Wat is RUST?
Echte "webservices" API's omvatten REST (Representational State Transfer). REST API's zijn gebouwd op URI's (Uniform Resource Identifiers, waarvan een URL een speciaal soort is), het HTTP-protocol en het ongelooflijk browser-compatibele JSON-gegevensformaat.
Het SOAP-protocol kan, zoals we al zeiden, mogelijk ook worden gebruikt. REST API's kunnen eenvoudig te maken en te ontwikkelen zijn, maar ze kunnen ook enorm en moeilijk zijn - het hangt allemaal af van hoe ze zijn gemaakt, uitgebreid en waarvoor ze bedoeld zijn.
Resourcebeperkingen, verminderde beveiligingsvereisten, compatibiliteit met browserclients, vindbaarheid, gegevensgezondheid en schaalbaarheid zijn enkele redenen waarom u een API zou willen ontwikkelen om RESTful te zijn - dingen die eigenlijk van toepassing zijn op webservices.
REST biedt een lichtere optie. SOAP was moeilijk te gebruiken en lastig voor veel ontwikkelaars. Het gebruik van SOAP met JavaScript vereist bijvoorbeeld het schrijven van veel code om eenvoudige bewerkingen uit te voeren, aangezien de noodzakelijke XML-structuur elke keer moet worden gemaakt.
REST gebruikt (meestal) een eenvoudige URL in plaats van een XML-verzoek. Hoewel er zeldzame omstandigheden zijn waarin u meer details moet geven, gebruiken de meeste RESTful-webservices alleen de URL-techniek.
De vier HTTP 1.1-werkwoorden GET, POST, PUT en DELETE kunnen door REST worden gebruikt om bewerkingen uit te voeren. In tegenstelling tot SOAP hoeft REST het antwoord niet in XML te hebben.
Op REST gebaseerde webservices die gegevens uitvoeren in de formaten Command Separated Value (CSV), JavaScript Object Notation (JSON) en Really Simple Syndication (RSS) zijn beschikbaar (RSS).
Het doel is dat u de resultaten krijgt die u nodig hebt in een gemakkelijk te ontleden formaat binnen de taal die u voor uw toepassing gebruikt.
Voordelen
- REST legt vooral de nadruk op eenvoud, dankzij HTTP-protocollen.
- Het web is het meest geschikt voor REST. Het is compatibel met browsers omdat JSON als gegevensformaat wordt gebruikt.
- REST staat bekend om zijn uitstekende schaalbaarheid en snelheid.
- Client-server verbindingen en architecturen worden toegankelijker gemaakt door REST API's. Als het RESTful is, is het geconstrueerd met behulp van dit client-servermodel, waarbij heen en terug tussen de twee partijen datapayloads worden doorgegeven.
- REST API's gebruiken een eenzame standaardinterface. Door ervoor te zorgen dat alle apps uniform en via dezelfde gateway verbinding maken, wordt de manier waarop applicaties communiceren met de API gestroomlijnd.
Wat is SOAP?
Het eigen protocol, SOAP (Simple Object Access Protocol) genaamd, is iets ingewikkelder dan REST, omdat het meer standaarden specificeert, waaronder die met betrekking tot beveiliging en berichtbezorging.
Deze inherente normen komen met een beetje extra overhead. Ze kunnen echter een doorslaggevende factor zijn voor bedrijven die uitgebreidere beveiligings-, transactie- en ACID-compliancemogelijkheden (Atomicity, Consistency, Isolation, Durability) nodig hebben.
Omwille van deze vergelijking is het belangrijk op te merken dat veel van de voordelen van SOAP niet vaak van toepassing zijn op webservice-applicaties, waardoor ze meer geschikt zijn voor bedrijfsscenario's.
Hogere beveiligingsgraden (zoals wanneer een mobiele app interactie met een bank), messaging-apps die betrouwbare communicatie vereisen, interactie met verouderde systemen of ACID-compliance zijn enkele redenen waarom u een applicatie zou willen ontwerpen met behulp van een SOAP API.
De berichtenmogelijkheden van SOAP zijn volledig gebaseerd op XML. Oudere internet-incompatibele technologieën zoals het Distributed Component Object Model (DCOM) en Common Object Request Broker Architecture werden vervangen door SOAP toen het voor het eerst werd gemaakt door Microsoft (CORBA).
De afhankelijkheid van binaire communicatie zorgt ervoor dat deze systemen falen. Via internet functioneert XML-berichten zoals dat gebruikt wordt door SOAP beter.
Voordelen
- De beveiliging van SOAP is aanzienlijk strenger. WS-Security is een ingebouwde standaard die naast SSL-ondersteuning indien nodig aanvullende beveiligingsmogelijkheden op ondernemingsniveau biedt voor SOAP.
- Geslaagd/probeer redenering opnieuw voor betrouwbare berichtprestaties. Omdat REST geen gestandaardiseerd berichtmechanisme heeft, kan het alleen opnieuw proberen als de communicatie mislukt. Zelfs bij gebruik van SOAP-tussenproducten biedt SOAP end-to-end-betrouwbaarheid dankzij de ingebouwde logica voor slagen/opnieuw proberen.
- SOAP voldoet al aan de ACID-normen. Door te dicteren hoe transacties met de database kunnen omgaan, minimaliseert ACID-compliance afwijkingen en waarborgt de consistentie van een database. Omdat ACID voorzichtiger is dan andere modellen voor gegevensconsistentie, wordt het vaak gebruikt bij het beheer van gevoelige transacties, of deze nu financieel of anderszins zijn.
- Het is eenvoudig te begrijpen voor programmeurs, aangezien SOAP een volledig op XML gebaseerde communicatie is.
- Het XML-berichtenprotocol is een aanvulling op het HTTP-protocol.
- Communicatie van de ene computer naar de andere computers kan worden verspreid via SOAP-berichten.
- Client-server-architectuur kan ook worden geïmplementeerd. Een SOAP-protocolbericht kan door de client worden gebruikt om een externe procedureaanroep aan te roepen die zich aan de serverzijde bevindt.
REST versus SOAP-verschillen
1. architectuur
Een API is bedoeld om vooral specifieke onderdelen van de bedrijfslogica van een applicatie op een server weer te geven. Terwijl REST voor hetzelfde doel gebruik maakt van URI's, gebruikt SOAP hiervoor een Service Interface.
REST API's worden gemaakt na de gegevens, terwijl SOAP API's worden ontwikkeld na de functionaliteiten die de API illustreert. In vergelijking met SOAP, dat meer functiegestuurd is, is REST een meer datagestuurd ontwerp.
2. caching
Gegevens die zijn gemarkeerd als cachebaar, kunnen opnieuw door browsers worden gebruikt zonder dat ze een nieuw verzoek aan de server hoeven te doen. Het besparen van tijd en moeite is hier een voordeel van.
Antwoorden worden niet in de cache op HTTP-niveau opgeslagen, aangezien SOAP-query's worden ingediend via POST-verzoeken, die door de HTTP-standaard als niet-idempotent worden beschouwd. Als u caching wilt gebruiken, moet u nog steeds de benodigde technieken bouwen, aangezien REST API's deze implementatie niet bevatten.
3. Middelen en bandbreedte
Vanwege de payload-overdracht in envelopstijl die door SOAP wordt gebruikt, is er een bescheiden toename van de overhead, waardoor extra bandbreedte nodig is. Het lichtgewicht karakter van REST is in deze situaties een voordeel omdat het over het algemeen wordt gebruikt voor webservices.
4. Veiligheid
WS-beveiliging, die door SOAP wordt ondersteund en iets grondiger is dan SSL op transportniveau, is wenselijk. Het opnemen van beveiligingsmaatregelen op ondernemingsniveau past ook perfect.
End-to-end encryptie met behulp van SSL wordt ondersteund door zowel SOAP als REST, en REST kan gebruikmaken van HTTPS, de veilige variant van het HTTP-protocol.
5. Ladingen afhandelen
Gegevens die via internet worden verzonden, worden een payload genoemd. Een payload die als "zwaar" wordt beschouwd, heeft extra middelen nodig. In vergelijking met SOAP, dat XML gebruikt, gebruikt REST vaak JSON en HTTP om de payload te verminderen.
Een gespecialiseerde Client-bibliotheek met gegenereerde code moet doorgaans door de Client worden gebruikt om toegang te krijgen tot SOAP API's vanwege hun extreem strikte communicatiecontract.
Hierdoor biedt SOAP een lager abstractieniveau dan REST en is het nauwer verbonden met de server.
Wanneer REST gebruiken?
- Openbare API's maken: REST API's hebben de voorkeur voor het bouwen van openbare webservices omdat ze eenvoudiger te gebruiken en te gebruiken zijn dan SOAP API's. Daarnaast biedt SOAP verschillende ingebouwde beveiligingsmaatregelen die REST niet heeft, hoewel deze kenmerken niet vereist zijn bij het werken met open data en services.
- Mobiele apps bouwen: REST is perfect voor het bouwen van mobiele applicaties omdat het klein, effectief, staatloos en cachebaar is.
- Gebruik maken van schaarse serverbronnen en bandbreedte: Alle verzoeken aan een REST API moeten stateless zijn, wat betekent dat elke interactie afzonderlijk is en dat elk verzoek en antwoord alle gegevens bevat die nodig zijn om die interactie te voltooien. De server slaat geen records van eerdere verzoeken op, aangezien het elk verzoek als een nieuw verzoek behandelt. Hierdoor heeft de server veel minder geheugen nodig en werkt hij sneller omdat een verzoek geen verdere actie of het opvragen van historische gegevens vereist.
Wanneer SOAP gebruiken?
- Het creëren van privé-API's, met name voor grote bedrijven: SOAP is perfect voor bedrijfstoepassingen omdat het gegevensstroom in een gedecentraliseerde, gedistribueerde omgeving mogelijk maakt en verschillende online beveiligingsfuncties bevat.
- Een ander transportprotocol dan HTTP gebruiken als onderliggende laag: SOAP is niet afhankelijk van HTTP als onderliggende laag. Afhankelijk van uw toepassing kunt u SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service) of een ander transportprotocol gebruiken.
- Werken met stateful operaties: In tegenstelling tot verzoeken aan REST-API's, zijn verzoeken aan SOAP-API's stateful, wat betekent dat de server informatie over de client opslaat en deze gebruikt voor een reeks verzoeken of bewerkingen. Hoewel dit meer serverbandbreedte en -bronnen gebruikt, is het cruciaal voor het uitvoeren van routinematige of gekoppelde acties, zoals bankoverschrijvingen.
Conclusie
De vergelijking tussen REST- en SOAP-API's maakt vrij duidelijk dat REST de voorkeur heeft boven SOAP. Toch zijn er situaties waarin SOAP API vereist is. In bepaalde gevallen worden webservices gemaakt door REST- en SOAP-API's te combineren.
Daarom zal de use case bepalen welke API-stijl het beste werkt.
Laat een reactie achter