Wëllt Dir Är App op Facebook verbannen, fir datt se automatesch Posts generéiere kann, oder op Instagram, fir datt Dir Fotoe mat bestëmmten Hashtag repostéiere kënnt?
Dir wëllt och YouTube Videoen op Ärer Websäit enthalen. Applikatiounsprogramméierungsinterfaces erlaben Iech all dës Aufgaben a méi (APIs) auszeféieren.
Verschidde Applikatioune kënnen op eng sécher a standardiséiert Manéier matenee "schwätze" dank APIs wéi d'Instagram API, Facebook API, an YouTube API.
An anere Wierder, e Programm kann Features oder Daten aus engem anere Stéck Software huelen an se benotze fir seng eege Funktiounen oder Benotzererfarung ze verbesseren. Awer wéi kënnen Apps dës Ufroe maachen, se veraarbecht an op eng Manéier reagéieren déi anerer kënne verstoen?
Dat hänkt dovun of wéi d'API erstallt gouf. Wann Dir iwwer API (Applikatioun Programméierungs Interface) Designen diskutéiert, ass et üblech SOAP vs REST ze vergläichen, zwee vun de prominentsten API Paradigmen.
Soubal SOAP APIs (Simple Object Access Protocol) de Goldstandard fir Firme wéi Oracle, Sun a PayPal gouf, gouf et eng gläich an entgéintgesate Äntwert e Joer oder esou méi spéit op REST APIs vu Google, Amazon, an eBay.
An dësem Post wäerte mir SOAP APIs mat REST APIs vergläichen a kontrastéieren sou datt Dir kënnt entscheeden wat am Beschten fir Är Zwecker ass.
Mir fänken un mat der API ze definéieren.
Wat ass API?
Application Programming Interface gëtt als API bezeechent. APIs sinn am Fong eng Sammlung vu Methoden a Funktiounen déi d'Entwécklung vun Apps erméiglechen. Si kréien Zougang zu den Informatioun a Funktiounen vu verschiddene Programmer, Servicer oder Betribssystemer.
Si déngen als eng Zort Mëttelmann tëscht verschiddene Software Systemer. Si erméiglechen "schwätzen" tëscht zwee net verbonne Programmer.
Loosst eis d'Beispill vun engem Börsebroker huelen, deen aktiv am Handel an de Finanzmäert involvéiert ass. Eng Sammlung vun automatiséiert Handelsalgorithmen kann mat der Léifsten Handelsbroker Plattform vum Händler duerch eng API verbonne ginn. Dëst erlaabt Iech, den Händler, elektronesch Transaktiounen auszeféieren oder Echtzäit Zitater a Präisdaten ze gesinn.
Wat ass REST?
Richteg "Webservicer" APIen enthalen REST (Representational State Transfer). REST APIs sinn op URIs gebaut (Uniform Resource Identifiers, vun deenen eng URL eng speziell Aart ass), dem HTTP Protokoll, an dem onheemlech Browser-kompatiblen JSON Dateformat.
De SOAP Protokoll, wéi mir scho gesot hunn, kéint eventuell och benotzt ginn. REST APIs kënnen einfach sinn ze kreéieren a wuessen, awer si kënnen och enorm a schwéier sinn - et hänkt alles dovun of wéi se erstallt, erweidert a wat se virgesi sinn ze maachen.
Ressource Aschränkungen, reduzéiert Sécherheetsfuerderunge, Browser Client Kompatibilitéit, Entdeckbarkeet, Dategesondheet a Skalierbarkeet sinn e puer Grënn, déi Dir wëllt eng API entwéckelen fir RESTful ze sinn - Saachen déi tatsächlech op Webservicer gëllen.
REST bitt eng méi liicht Optioun. SOAP war schwéier ze benotzen an ustrengend fir vill Entwéckler. Zum Beispill, d'Benotzung vu SOAP mat JavaScript erfuerdert vill Code ze schreiwen fir einfach Operatiounen ze kompletéieren, well déi néideg XML Struktur muss all Kéier erstallt ginn.
REST (typesch) benotzt eng einfach URL amplaz vun enger XML Ufro. Och wann et selten Ëmstänn sinn wann Dir méi Detailer muss ubidden, benotzt d'Majoritéit vun de RESTful Webservicer nëmmen d'URL Technik.
Déi véier HTTP 1.1 Verben GET, POST, PUT a DELETE kënne vu REST benotzt ginn fir Operatiounen auszeféieren. Am Géigesaz zu SOAP brauch REST d'Äntwert net an XML ze sinn.
REST-baséiert Webservicer déi Daten a Command Separated Value (CSV), JavaScript Object Notation (JSON) a Really Simple Syndication (RSS) Formater ausginn, sinn verfügbar (RSS).
D'Zil ass datt Dir d'Resultater kritt déi Dir braucht an engem einfach-ze-parse Format an der Sprooch déi Dir fir Är Applikatioun benotzt.
Eegeschaften
- REST betount d'Einfachheet virun allem, wéinst HTTP Protokoller.
- De Web ass am Beschten gëeegent fir REST. Et ass kompatibel mat Browser well JSON als Dateformat benotzt gëtt.
- REST ass bekannt fir seng aussergewéinlech Skalierbarkeet a Geschwindegkeet.
- Client-Server Verbindungen an Architekturen gi méi zougänglech duerch REST APIs gemaach. Wann et RESTful ass, gëtt et mat dësem Client-Server Modell konstruéiert, mat Rondreesen tëscht den zwou Parteien, déi Datennotzlaascht iwwerginn.
- REST APIs benotzen eng solitär Standard Interface. Sécherstellen datt all Apps eenheetlech an duerch déiselwecht Paart verbannen, streamlines wéi d'Applikatioune mat der API kommunizéieren.
Wat ass SOAP?
Säin eegene Protokoll, genannt SOAP (Simple Object Access Protocol), ass e bësse méi komplizéiert wéi REST well et méi Standards spezifizéiert, och déi am Zesummenhang mat Sécherheet a Message Liwwerung.
Dës inherent Normen kommen mat e bëssen extra Overhead. Wéi och ëmmer, si kënnen en entscheedende Faktor sinn fir Geschäfter déi méi extensiv Sécherheets-, Transaktiouns- an ACID (Atomizitéit, Konsistenz, Isolatioun, Haltbarkeet) Konformitéitsfäegkeeten brauchen.
Fir d'Wuel vun dësem Verglach ass et wichteg ze bemierken datt vill vun de Virdeeler vu SOAP net dacks op Webservicer Uwendungen gëllen, wat se méi gëeegent fir Enterprise-Typ Szenarie maachen.
Méi héich Sécherheetsgrade (wéi wann a Handy App interagéiert mat enger Bank), Messagerie Apps déi zouverlässeg Kommunikatioun erfuerderen, Interaktioun mat legacy Systemer, oder ACID Konformitéit sinn e puer Grënn, déi Dir wëllt eng Applikatioun mat engem SOAP API designen.
D'Messagefäegkeeten ugebuede vu SOAP si ganz op XML baséiert. Eeler Internet-inkompatibel Technologien wéi de Distributed Component Object Model (DCOM) a Common Object Request Broker Architecture goufen duerch SOAP ersat wann et fir d'éischt vu Microsoft (CORBA) erstallt gouf.
D'Vertrauen op binär Kommunikatiounen verursaacht dës Systemer ze versoen. Iwwer den Internet funktionnéiert XML Messagerie wéi déi vun SOAP benotzt besser.
Eegeschaften
- D'Sécherheet vu SOAP ass wesentlech méi streng. WS-Security ass en agebaute Standard deen SOAP zousätzlech Enterprise-Niveau Sécherheetsfäegkeeten ubitt wann néideg zousätzlech zu SSL Support.
- Erfolleg / Neiprobéieren Begrënnung fir zouverlässeg Messagerie Leeschtung. Well REST e standardiséierte Messagemechanismus feelt, kann et nëmmen erëm probéieren wann d'Kommunikatioun feelt. Och wann Dir SOAP Zwëscheprodukter benotzt, bitt SOAP Enn-zu-Enn Zouverlässegkeet wéinst senger agebauter erfollegräicher / neier Versuch Logik.
- SOAP entsprécht scho mat ACID Standarden. Andeems Dir diktéiert wéi Transaktioune mat der Datebank interagéiere kënnen, miniméiert d'ACID Konformitéit Anomalien a schützt d'Konsistenz vun enger Datebank. Well ACID méi virsiichteg ass wéi aner Datekonsistenzmodeller, gëtt se dacks benotzt wann Dir sensibel Transaktiounen managen, egal ob finanziell oder soss.
- Et ass einfach fir Programméierer ze verstoen well SOAP eng total XML-baséiert Kommunikatioun ass.
- Den XML Messagerie Protokoll ass en Zousaz zum HTTP Protokoll.
- Kommunikatioun vun engem Computer op en anere Computer kann iwwer SOAP Messagerie verbreet ginn.
- Client-Server Architektur kann och ëmgesat ginn. E SOAP Protokoll Message ka vum Client benotzt ginn fir e Fernprozedur Uruff ze ruffen deen op Serversäit läit.
REST Vs SOAP Differenzen
1. Architektur
Eng API ass geduecht fir haaptsächlech spezifesch Komponente vun der Geschäftslogik vun enger Applikatioun op engem Server ze weisen. Wärend REST benotzt URIs fir deeselwechten Zweck, benotzt SOAP e Service Interface fir dëst.
REST APIs ginn no den Donnéeën erstallt, wärend SOAP APIs no de Funktionalitéiten entwéckelt ginn, déi d'API illustréiert. Am Verglach mat SOAP, wat méi Funktiounsgedriwwen ass, ass REST e méi dategedriwwenen Design.
2. Caching
Daten, déi als cachebar markéiert goufen, kënne vu Browser erëm benotzt ginn ouni datt se eng nei Ufro un de Server maachen. Zäit an Effort spueren ass e Virdeel vun dësem.
D'Äntwerte ginn net um HTTP-Niveau cache well SOAP Ufroen iwwer POST Ufroe presentéiert ginn, déi den HTTP Standard als net-idempotent hält. Wann Dir Caching benotze wëllt, musst Dir nach ëmmer déi néideg Techniken bauen well REST APIs dës Implementatioun net enthalen.
3. Ressourcen & Bandbreedung
Wéinst der Enveloppe-Stil Notzlaaschttransfer benotzt vu SOAP, gëtt et eng bescheiden Erhéijung vun der Overhead, déi extra Bandbreedung erfuerdert. Dem REST seng liicht Natur ass e Virdeel an dëse Situatiounen well et allgemeng fir Webservicer benotzt gëtt.
4. Sécherheet
WS-Sécherheet, déi SOAP ënnerstëtzt a liicht méi grëndlech ass wéi SSL um Transportniveau, ass wënschenswäert. D'Integratioun vu Sécherheetsmoossnamen op Entreprisen ass och e perfekte Passform.
End-to-End Verschlësselung mat SSL gëtt vu SOAP a REST ënnerstëtzt, an REST kann HTTPS benotzen, déi sécher Variant vum HTTP Protokoll.
5. Ëmgank Notzlaascht
Daten iwwer den Internet iwwerdroen ginn als Notzlaascht bezeechent. Eng Notzlaascht déi als "schwéier" ugesi gëtt, brauch zousätzlech Ressourcen. Am Verglach mat SOAP, déi XML benotzt, benotzt REST dacks JSON an HTTP fir d'Notzlaascht ze reduzéieren.
Eng spezialiséiert Clientbibliothéik mat generéierte Code muss typesch vum Client benotzt ginn fir Zougang zu SOAP APIs ze kréien wéinst hirem extrem strenge Kommunikatiounskontrakt.
Als Resultat bitt SOAP e manner Abstraktiounsniveau wéi REST an ass méi enk mam Server verbonnen.
Wéini benotzen ech REST?
- Ëffentlech APIen erstellen: REST APIe gi léiwer fir ëffentlech Webservicer ze bauen well se gesi ginn als méi einfach ze benotzen an ze adoptéieren wéi SOAP APIs. Zousätzlech bitt SOAP verschidde agebaute Sécherheetsmoossnamen déi REST net huet, obwuel dës Charakteristiken net erfuerderlech sinn wann Dir mat oppenen Daten a Servicer schafft.
- Konstruktioun vun mobilen Apps: REST ass perfekt fir mobil Uwendungen ze bauen well et kleng ass, effektiv, stateless a cachebar ass.
- Benotzt knappe Serverressourcen a Bandbreedung: All Ufroe fir eng REST API mussen stateless sinn, dat heescht datt all Interaktioun getrennt ass an all Ufro an Äntwert enthält all d'Donnéeën déi néideg sinn fir dës Interaktioun ofzeschléissen. De Server späichert keng Rekorder vu fréiere Ufroe well se all eenzel als eng frësch Ufro behandelt. Als Resultat erfuerdert de Server vill manner Erënnerung a funktionnéiert méi séier well eng Ufro keng weider Handlung oder d'Erhuelung vun historeschen Donnéeën erfuerdert.
Wéini SOAP ze benotzen?
- Privat APIen erstellen, besonnesch fir grouss Geschäfter: SOAP ass perfekt fir Firmenapplikatioune well et den Datefloss an engem dezentraliséierten, verdeelt Ëmfeld erméiglecht an e puer Online Sécherheetsfeatures enthält.
- Benotzt en Transportprotokoll anescht wéi HTTP als Basisschicht: SOAP ass net ofhängeg vun HTTP als Basisschicht. Ofhängeg vun Ärer Applikatioun, kënnt Dir SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service) oder en aneren Transportprotokoll benotzen.
- Schafft mat staatlechen Operatiounen: Am Géigesaz zu Ufroe fir REST APIs, Ufroe fir SOAP APIs si statesch, dat heescht datt de Server Informatioun iwwer de Client späichert an se iwwer eng Kette vun Ufroen oder Operatiounen benotzt. Och wann dëst méi Serverbandbreedung a Ressourcen benotzt, ass et entscheedend fir Routine oder verlinkte Aktiounen auszeféieren, wéi Bankiwwerweisungen.
Konklusioun
De Verglach tëscht REST a SOAP APIs mécht et ganz evident datt REST léiwer ass wéi SOAP. Och nach ginn et Situatiounen wou SOAP API erfuerderlech ass. A bestëmmte Fäll ginn Webservicer erstallt andeems REST a SOAP APIs kombinéiert ginn.
Dofir wäert de Benotzungsfall bestëmmen wéi eng API-Stil am Beschten funktionnéiert.
Hannerlooss eng Äntwert