Chcete prepojiť svoju aplikáciu s Facebookom, aby mohla automaticky generovať príspevky, alebo s Instagramom, aby ste mohli preposielať fotografie s určitými hashtagmi?
Môžete tiež chcieť zahrnúť videá YouTube na svoje webové stránky. Rozhrania na programovanie aplikácií vám umožňujú vykonávať všetky tieto úlohy a ďalšie (rozhrania API).
Rôzne aplikácie môžu medzi sebou „hovoriť“ bezpečným a štandardizovaným spôsobom vďaka rozhraniam API, ako sú Instagram API, Facebook API a YouTube API.
Inými slovami, program môže prevziať funkcie alebo údaje z iného softvéru a použiť ich na zlepšenie svojich vlastných funkcií alebo používateľskej skúsenosti. Ako však môžu aplikácie podávať tieto požiadavky, spracovávať ich a reagovať na ne spôsobom, ktorému ostatní rozumejú?
To závisí od toho, ako bolo API vytvorené. Pri diskusii o návrhoch API (application programming interface) je obvyklé porovnávať SOAP vs. REST, dve z najvýznamnejších API paradigiem.
Hneď ako sa SOAP API (Simple Object Access Protocol) stali zlatým štandardom pre firmy ako Oracle, Sun a PayPal, približne o rok neskôr bola rovnaká a opačná reakcia na REST API od Google, Amazon a eBay.
V tomto príspevku porovnáme a porovnáme SOAP API s REST API, aby ste sa mohli rozhodnúť, ktoré je pre vaše účely najlepšie.
Začneme definovaním API.
Čo je API?
Aplikačné programové rozhranie sa označuje ako API. Rozhrania API sú v podstate súborom metód a funkcií, ktoré umožňujú vývoj aplikácií. Získavajú prístup k informáciám a funkciám rôznych programov, služieb alebo operačných systémov.
Slúžia ako akýsi prostredník medzi rôznymi softvérovými systémami. Umožňujú „hovorenie“ medzi dvoma neprepojenými programami.
Vezmime si príklad obchodníka s cennými papiermi, ktorý sa aktívne venuje obchodovaniu a finančným trhom. Zbierka automatizovaných obchodné algoritmy možno pripojiť k obľúbenej platforme obchodného makléra obchodníka prostredníctvom rozhrania API. To vám, obchodníkovi, umožňuje vykonávať elektronické transakcie alebo zobrazovať cenové ponuky a cenové údaje v reálnom čase.
Čo je ODPOČINOK?
Skutočné rozhrania API „webových služieb“ zahŕňajú REST (Representational State Transfer). Rozhrania REST API sú postavené na identifikátoroch URI (Uniform Resource Identifiers, ktorých špeciálnym druhom je adresa URL), protokole HTTP a neuveriteľne kompatibilnom formáte údajov JSON kompatibilnom s prehliadačom.
Možno by sa mohol použiť aj protokol SOAP, ako sme už uviedli. Rozhrania REST API sa dajú ľahko vytvárať a rásť, ale môžu byť aj obrovské a náročné – všetko závisí od toho, ako sú vytvorené, rozširované a na čo sú určené.
Obmedzenia zdrojov, znížené požiadavky na bezpečnosť, kompatibilita klienta prehliadača, objaviteľnosť, stav údajov a škálovateľnosť sú niektoré dôvody, prečo by ste chceli vyvinúť API, aby bolo RESTful – veci, ktoré sa v skutočnosti vzťahujú na webové služby.
REST ponúka ľahšiu možnosť. SOAP bolo ťažko použiteľné a pre mnohých vývojárov zaťažovalo. Napríklad používanie SOAP s JavaScriptom vyžaduje napísanie veľkého množstva kódu na dokončenie jednoduchých operácií, pretože zakaždým je potrebné vytvoriť potrebnú štruktúru XML.
REST (zvyčajne) používa namiesto požiadavky XML priamu adresu URL. Aj keď v zriedkavých prípadoch musíte ponúknuť viac podrobností, väčšina webových služieb RESTful používa iba techniku URL.
Štyri HTTP 1.1 slovesá GET, POST, PUT a DELETE môže REST použiť na vykonávanie operácií. Na rozdiel od SOAP REST nepotrebuje, aby bola odpoveď v XML.
K dispozícii sú webové služby založené na REST, ktoré odosielajú údaje vo formátoch CSV (Command Separated Value), JavaScript Object Notation (JSON) a Really Simple Syndication (RSS).
Cieľom je, aby ste mohli získať výsledky, ktoré potrebujete, v ľahko analyzovateľnom formáte v rámci jazyka, ktorý používate pre svoju aplikáciu.
Vlastnosti
- REST kladie dôraz predovšetkým na jednoduchosť vďaka protokolom HTTP.
- Web je najvhodnejší pre REST. Je kompatibilný s prehliadačmi, pretože ako dátový formát sa používa JSON.
- REST je známy svojou vynikajúcou škálovateľnosťou a rýchlosťou.
- Pripojenia a architektúry klient-server sú vďaka REST API dostupnejšie. Ak je RESTful, je skonštruovaný pomocou tohto modelu klient-server so spiatočnými cestami medzi dvoma stranami, ktoré prenášajú užitočné zaťaženia.
- REST API využívajú osamelé štandardné rozhranie. Zabezpečenie toho, že sa všetky aplikácie pripájajú jednotne a cez rovnakú bránu, zjednodušuje komunikáciu aplikácií s rozhraním API.
Čo je SOAP?
Jeho vlastný protokol, nazývaný SOAP (Simple Object Access Protocol), je o niečo komplikovanejší ako REST, pretože špecifikuje viac štandardov, vrátane tých, ktoré sa týkajú bezpečnosti a doručovania správ.
Tieto prirodzené normy prichádzajú s trochou réžie navyše. Môžu však byť rozhodujúcim faktorom pre podniky, ktoré potrebujú rozsiahlejšie možnosti zabezpečenia, transakcie a ACID (Atomicita, Konzistencia, Izolácia, Trvanlivosť).
V záujme tohto porovnania je dôležité poznamenať, že mnohé z výhod SOAP sa často nevzťahujú na aplikácie webových služieb, vďaka čomu sú vhodnejšie pre scenáre podnikového typu.
Vyššie stupne zabezpečenia (napríklad keď a mobilné aplikácie interaguje s bankou), aplikácie na odosielanie správ, ktoré vyžadujú spoľahlivú komunikáciu, interakciu so staršími systémami alebo súlad s ACID, je niekoľko dôvodov, prečo by ste chceli navrhnúť aplikáciu využívajúcu SOAP API.
Možnosti zasielania správ, ktoré ponúka SOAP, sú úplne založené na XML. Staršie technológie nekompatibilné s internetom ako Distributed Component Object Model (DCOM) a Common Object Request Broker Architecture boli nahradené SOAP, keď bol prvýkrát vytvorený spoločnosťou Microsoft (CORBA).
Spoliehanie sa na binárnu komunikáciu spôsobuje zlyhanie týchto systémov. Cez internet fungujú správy XML podobné tým, ktoré používa SOAP, lepšie.
Vlastnosti
- Bezpečnosť SOAP je výrazne prísnejšia. WS-Security je vstavaný štandard, ktorý v prípade potreby okrem podpory SSL ponúka ďalšie možnosti zabezpečenia SOAP na podnikovej úrovni.
- Úspešné/opakované zdôvodnenie dôveryhodného výkonu správ. Pretože REST nemá štandardizovaný mechanizmus správ, môže to skúsiť znova len vtedy, keď komunikácia zlyhá. Dokonca aj pri použití medziproduktov SOAP ponúka SOAP komplexnú spoľahlivosť vďaka svojej vstavanej logike úspešného/opakovaného pokusu.
- SOAP už vyhovuje štandardom ACID. Tým, že určuje, ako môžu transakcie interagovať s databázou, zhoda ACID minimalizuje anomálie a zabezpečuje konzistenciu databázy. Keďže ACID je opatrnejší ako iné modely konzistentnosti údajov, často sa používa pri správe citlivých transakcií, či už finančných alebo iných.
- Pre programátorov je to jednoduché, pretože SOAP je komunikácia založená výlučne na XML.
- Protokol správ XML je doplnkom protokolu HTTP.
- Komunikáciu z jedného počítača do druhého možno šíriť prostredníctvom správ SOAP.
- Je možné implementovať aj architektúru klient-server. Správu protokolu SOAP môže klient použiť na zavolanie vzdialeného volania procedúry, ktoré sa nachádza na strane servera.
Rozdiely REST a SOAP
1. architektúra
Rozhranie API je určené predovšetkým na zobrazenie špecifických komponentov obchodnej logiky aplikácie na serveri. Zatiaľ čo REST využíva URI na rovnaký účel, SOAP na tento účel využíva rozhranie služby.
Rozhrania REST API sa vytvárajú po údajoch, zatiaľ čo rozhrania SOAP API sa vyvíjajú po funkciách, ktoré ilustruje API. V porovnaní so SOAP, ktorý je viac orientovaný na funkcie, REST je dizajn viac založený na údajoch.
2. caching
Údaje, ktoré boli označené ako cacheovateľné, môžu prehliadače znova použiť bez toho, aby museli zadávať novú požiadavku na server. Výhodou je úspora času a úsilia.
Odpovede sa nebudú ukladať do vyrovnávacej pamäte na úrovni HTTP, pretože dotazy SOAP sa odosielajú prostredníctvom požiadaviek POST, ktoré štandard HTTP považuje za neidempotentné. Ak chcete použiť ukladanie do vyrovnávacej pamäte, stále musíte vytvoriť potrebné techniky, pretože REST API túto implementáciu nezahŕňajú.
3. Zdroje a šírka pásma
Kvôli prenosu užitočného zaťaženia v štýle obálky, ktorý používa SOAP, dochádza k miernemu zvýšeniu réžie, čo si vyžaduje dodatočnú šírku pásma. Ľahká povaha REST je v týchto situáciách výhodou, pretože sa vo všeobecnosti používa pre webové služby.
4. Zabezpečenie
Žiaduce je zabezpečenie WS, ktoré SOAP podporuje a je o niečo dôkladnejšie ako SSL na úrovni prenosu. Dokonale sa hodí aj začlenenie bezpečnostných opatrení na podnikovej úrovni.
End-to-end šifrovanie pomocou SSL je podporované SOAP aj REST a REST môže používať HTTPS, zabezpečený variant protokolu HTTP.
5. Manipulácia s nákladmi
Dáta prenášané cez internet sa označujú ako užitočné zaťaženie. Užitočné zaťaženie, ktoré sa považuje za „ťažké“, potrebuje ďalšie zdroje. V porovnaní so SOAP, ktorý využíva XML, REST často používa JSON a HTTP na zníženie užitočného zaťaženia.
Klient musí zvyčajne používať špecializovanú knižnicu klienta s vygenerovaným kódom na prístup k rozhraniam SOAP API z dôvodu mimoriadne prísnej zmluvy o komunikácii.
Výsledkom je, že SOAP ponúka nižšiu úroveň abstrakcie ako REST a je užšie prepojený so serverom.
Kedy použiť REST?
- Vytváranie verejných API: Rozhrania REST API sú preferované na vytváranie verejných webových služieb, pretože sa považujú za jednoduchšie na používanie a prijímanie ako rozhrania SOAP API. SOAP navyše ponúka niekoľko vstavaných bezpečnostných opatrení, ktoré REST nemá, hoci tieto vlastnosti nie sú potrebné pri práci s otvorenými údajmi a službami.
- Vytváranie mobilných aplikácií: REST je ideálny na vytváranie mobilných aplikácií, pretože je malý, efektívny, bez stavu a cacheovateľný.
- Využívanie obmedzených zdrojov servera a šírky pásma: Všetky požiadavky na REST API musia byť bezstavové, čo znamená, že každá interakcia je samostatná a každá požiadavka a odpoveď obsahuje všetky údaje potrebné na dokončenie tejto interakcie. Server neukladá záznamy o predchádzajúcich požiadavkách, pretože každú z nich považuje za novú požiadavku. Výsledkom je, že server vyžaduje oveľa menej pamäte a pracuje rýchlejšie, pretože požiadavka si nevyžaduje ďalšiu akciu alebo získavanie historických údajov.
Kedy použiť SOAP?
- Vytváranie súkromných API, najmä pre veľké podniky: SOAP je ideálny pre podnikové aplikácie, pretože umožňuje tok údajov v decentralizovanom, distribuovanom prostredí a obsahuje niekoľko online bezpečnostných funkcií.
- Použitie iného transportného protokolu ako HTTP ako základnej vrstvy: SOAP nezávisí od HTTP ako základnej vrstvy. V závislosti od vašej aplikácie môžete použiť SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service) alebo iný transportný protokol.
- Práca so stavovými operáciami: Na rozdiel od požiadaviek na REST API sú požiadavky na SOAP API stavové, čo znamená, že server ukladá informácie o klientovi a využíva ich v reťazci požiadaviek alebo operácií. Aj keď to využíva väčšiu šírku pásma servera a zdroje, je to nevyhnutné na vykonávanie bežných alebo prepojených akcií, ako sú bankové prevody.
záver
Z porovnania medzi REST a SOAP API je celkom zrejmé, že REST je vhodnejší ako SOAP. Napriek tomu existujú situácie, kedy sa vyžaduje SOAP API. V určitých prípadoch sú webové služby vytvorené kombináciou REST a SOAP API.
Prípad použitia teda určí, ktorý štýl API bude fungovať najlepšie.
Nechaj odpoveď