Chcete svou aplikaci propojit s Facebookem, aby mohla automaticky generovat příspěvky, nebo s Instagramem, abyste mohli znovu zveřejňovat fotky s určitými hashtagy?
Můžete také chtít zahrnout videa z YouTube na svůj web. Rozhraní pro programování aplikací vám umožňují provádět všechny tyto úkoly a další (API).
Různé aplikace spolu mohou „mluvit“ bezpečným a standardizovaným způsobem díky rozhraní API, jako je Instagram API, Facebook API a YouTube API.
Jinými slovy, program může převzít funkce nebo data z jiného softwaru a využít je ke zlepšení svých vlastních funkcí nebo uživatelské zkušenosti. Jak ale mohou aplikace vznášet tyto požadavky, zpracovávat je a reagovat na ně způsobem, kterému ostatní rozumějí?
To záleží na tom, jak bylo API vytvořeno. Když diskutujeme o návrzích API (application programming interface), je obvyklé porovnávat SOAP vs. REST, dvě z nejvýznamnějších API paradigmat.
Jakmile se SOAP API (Simple Object Access Protocol) staly zlatým standardem pro firmy jako Oracle, Sun a PayPal, o rok později byla stejná a opačná odezva na REST API od Googlu, Amazonu a eBay.
V tomto příspěvku porovnáme a porovnáme SOAP API s REST API, abyste se mohli rozhodnout, které je pro vaše účely nejlepší.
Začneme definováním API.
Co je API?
Rozhraní pro programování aplikací se označuje jako API. Rozhraní API jsou v podstatě souborem metod a funkcí, které umožňují vývoj aplikací. Získávají přístup k informacím a funkcím různých programů, služeb nebo operačních systémů.
Slouží jako jakýsi prostředník mezi různými softwarovými systémy. Umožňují „mluvení“ mezi dvěma nepropojenými programy.
Vezměme si příklad obchodníka s cennými papíry, který se aktivně zabývá obchodováním a finančními trhy. Sbírka automatizovaných obchodní algoritmy lze propojit s oblíbenou platformou obchodníka pro obchodování prostřednictvím API. To vám, obchodníkovi, umožňuje provádět elektronické transakce nebo zobrazovat nabídky a cenová data v reálném čase.
Co je REST?
Skutečná rozhraní API „webových služeb“ zahrnují REST (Representational State Transfer). Rozhraní REST API jsou postavena na identifikátorech URI (Uniform Resource Identifiers, jejichž zvláštním druhem je adresa URL), protokolu HTTP a formátu dat JSON, který je neuvěřitelně kompatibilní s prohlížečem.
Možná by mohl být také použit protokol SOAP, jak jsme již uvedli. Rozhraní REST API lze snadno vytvářet a rozšiřovat, ale mohou být také obrovská a obtížná – vše závisí na tom, jak jsou vytvořena, rozšiřována a k čemu jsou určena.
Omezení zdrojů, snížené požadavky na zabezpečení, kompatibilita klienta prohlížeče, zjistitelnost, stav dat a škálovatelnost jsou některé důvody, proč byste chtěli vyvinout API, aby bylo RESTful – věci, které se ve skutečnosti týkají webových služeb.
REST nabízí lehčí variantu. SOAP bylo obtížné používat a zatěžovalo mnoho vývojářů. Například použití SOAP s JavaScriptem vyžaduje napsání velkého množství kódu k dokončení jednoduchých operací, protože potřebná struktura XML musí být vytvořena pokaždé.
REST (obvykle) používá místo požadavku XML přímou adresu URL. Ačkoli ve vzácných případech musíte nabídnout více podrobností, většina webových služeb RESTful používá pouze techniku adresy URL.
Čtyři HTTP 1.1 slovesa GET, POST, PUT a DELETE může REST použít k provádění operací. Na rozdíl od SOAP REST nepotřebuje, aby byla odpověď v XML.
K dispozici jsou webové služby založené na REST, které vydávají data ve formátech CSV (Command Separated Value), JavaScript Object Notation (JSON) a Really Simple Syndication (RSS).
Cílem je, abyste mohli získat výsledky, které potřebujete, ve snadno analyzovatelném formátu v rámci jazyka, který pro svou aplikaci používáte.
Funkce
- REST klade důraz především na jednoduchost díky HTTP protokolům.
- Web je nejvhodnější pro REST. Je kompatibilní s prohlížeči, protože jako datový formát se používá JSON.
- REST je známý svou vynikající škálovatelností a rychlostí.
- Připojení a architektury klient-server jsou díky REST API dostupnější. Pokud je RESTful, je zkonstruován pomocí tohoto modelu klient-server se zpátečními cestami mezi dvěma stranami, které předávají užitečné zatížení dat.
- REST API využívají osamocené standardní rozhraní. Zajištění toho, že se všechny aplikace připojují jednotně a prostřednictvím stejné brány, zjednodušuje komunikaci aplikací s rozhraním API.
Co je SOAP?
Jeho vlastní protokol, nazývaný SOAP (Simple Object Access Protocol), je o něco složitější než REST, protože specifikuje více standardů, včetně těch, které se týkají zabezpečení a doručování zpráv.
Tyto přirozené normy přicházejí s trochou režie navíc. Mohou však být rozhodujícím faktorem pro podniky, které potřebují rozsáhlejší možnosti zabezpečení, transakcí a ACID (Atomicity, Consistency, Isolation, Durability).
V zájmu tohoto srovnání je důležité poznamenat, že mnoho výhod SOAP se často nevztahuje na aplikace webových služeb, takže jsou vhodnější pro scénáře podnikového typu.
Vyšší stupně zabezpečení (například když a mobilní aplikace interaguje s bankou), aplikace pro zasílání zpráv, které vyžadují spolehlivou komunikaci, interakci se staršími systémy nebo soulad s ACID, je několik důvodů, proč byste chtěli navrhnout aplikaci využívající SOAP API.
Možnosti zasílání zpráv nabízené SOAP jsou zcela založeny na XML. Starší technologie nekompatibilní s internetem jako Distributed Component Object Model (DCOM) a Common Object Request Broker Architecture byly nahrazeny SOAP, když ji poprvé vytvořila společnost Microsoft (CORBA).
Závislost na binární komunikaci způsobuje selhání těchto systémů. Přes internet funguje zasílání zpráv XML, jako je to, které používá SOAP, lépe.
Funkce
- Zabezpečení SOAP je výrazně přísnější. WS-Security je vestavěný standard, který kromě podpory SSL nabízí v případě potřeby další možnosti zabezpečení na podnikové úrovni SOAP.
- Úspěšné/opakované zdůvodnění pro důvěryhodný výkon zpráv. Protože REST postrádá standardizovaný mechanismus zpráv, může se pokusit opakovat pouze v případě, že komunikace selže. I při použití meziproduktů SOAP nabízí SOAP spolehlivost end-to-end díky své vestavěné logice úspěšného/opakovaného pokusu.
- SOAP již vyhovuje standardům ACID. Tím, že diktuje, jak mohou transakce interagovat s databází, soulad s ACID minimalizuje anomálie a zajišťuje konzistenci databáze. Protože ACID je opatrnější než jiné modely konzistence dat, často se používá při správě citlivých transakcí, ať už finančních nebo jiných.
- Pro programátory je to jednoduché, protože SOAP je komunikace zcela založená na XML.
- Protokol zpráv XML je doplňkem protokolu HTTP.
- Komunikaci z jednoho počítače do druhého lze šířit prostřednictvím zpráv SOAP.
- Lze implementovat i architekturu klient-server. Zprávu protokolu SOAP může klient použít k volání vzdáleného volání procedury umístěné na straně serveru.
Rozdíly REST a SOAP
1. architektura
Rozhraní API je primárně určeno k zobrazení konkrétních součástí obchodní logiky aplikace na serveru. Zatímco REST využívá URI ke stejnému účelu, SOAP k tomu využívá rozhraní služeb.
Rozhraní API REST se vytvářejí po datech, zatímco rozhraní API SOAP se vyvíjejí po funkcích, které ilustruje rozhraní API. Ve srovnání s SOAP, který je více řízen funkcemi, je REST návrhem více založeným na datech.
2. Caching
Data, která byla označena jako cacheable, mohou prohlížeče znovu použít, aniž by musely zadávat nový požadavek na server. Výhodou je úspora času a úsilí.
Odpovědi nebudou ukládány do mezipaměti na úrovni HTTP, protože dotazy SOAP jsou odesílány prostřednictvím požadavků POST, které standard HTTP nepovažuje za neidempotentní. Pokud chcete použít ukládání do mezipaměti, musíte stále vytvořit potřebné techniky, protože rozhraní REST API tuto implementaci nezahrnují.
3. Zdroje a šířka pásma
Vzhledem k přenosu užitečného zatížení ve stylu obálky, který používá SOAP, dochází k mírnému nárůstu režie, což vyžaduje větší šířku pásma. Odlehčená povaha REST je v těchto situacích výhodou, protože se obecně používá pro webové služby.
4. Bezpečnostní
Žádoucí je zabezpečení WS, které SOAP podporuje a je o něco důkladnější než SSL na úrovni přenosu. Perfektně se hodí i začlenění bezpečnostních opatření na podnikové úrovni.
End-to-end šifrování pomocí SSL je podporováno SOAP i REST a REST může používat HTTPS, zabezpečenou variantu protokolu HTTP.
5. Manipulace s nákladem
Data přenášená přes internet se označují jako užitečné zatížení. Užitečné zatížení, které je považováno za „těžké“, potřebuje další zdroje. Ve srovnání s SOAP, který využívá XML, REST často používá JSON a HTTP, aby pomohl snížit užitečné zatížení.
Klient musí pro přístup k SOAP API typicky používat specializovanou klientskou knihovnu s vygenerovaným kódem z důvodu extrémně přísné komunikační smlouvy.
Výsledkem je, že SOAP nabízí nižší úroveň abstrakce než REST a je těsněji spojen se serverem.
Kdy použít REST?
- Vytváření veřejných API: REST API jsou upřednostňována pro vytváření veřejných webových služeb, protože se jeví jako jednodušší na použití a přijetí než SOAP API. SOAP navíc nabízí několik vestavěných bezpečnostních opatření, která REST nemá, ačkoli tyto vlastnosti nejsou vyžadovány při práci s otevřenými daty a službami.
- Vytváření mobilních aplikací: REST je ideální pro vytváření mobilních aplikací, protože je malý, efektivní, bez stavu a lze jej uložit do mezipaměti.
- Využití omezených zdrojů serveru a šířky pásma: Všechny požadavky na REST API musí být bezstavové, což znamená, že každá interakce je samostatná a každá žádost a odpověď obsahuje všechna data nezbytná k dokončení této interakce. Server neukládá záznamy předchozích požadavků, protože každý z nich považuje za nový požadavek. Výsledkem je, že server vyžaduje mnohem méně paměti a pracuje rychleji, protože požadavek nevyžaduje další akci nebo získávání historických dat.
Kdy použít SOAP?
- Vytváření soukromých API, zejména pro velké podniky: SOAP je ideální pro podnikové aplikace, protože umožňuje tok dat v decentralizovaném, distribuovaném prostředí a obsahuje několik online bezpečnostních funkcí.
- Použití jiného transportního protokolu než HTTP jako základní vrstvy: SOAP není závislý na HTTP jako základní vrstvě. V závislosti na vaší aplikaci můžete použít SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service) nebo jiný přenosový protokol.
- Práce se stavovými operacemi: Na rozdíl od požadavků na REST API jsou požadavky na SOAP API stavové, což znamená, že server ukládá informace o klientovi a využívá je v řetězci požadavků nebo operací. I když to využívá větší šířku pásma serveru a zdroje, je to zásadní pro provádění rutinních nebo propojených akcí, jako jsou bankovní převody.
Proč investovat do čističky vzduchu?
Srovnání mezi REST a SOAP API ukazuje, že REST je vhodnější než SOAP. Přesto existují situace, kdy je SOAP API vyžadováno. V některých případech jsou webové služby vytvářeny kombinací REST a SOAP API.
Případ použití tedy určí, který styl API bude fungovat nejlépe.
Napsat komentář