co je REST API?

posted in: Articles | 0

REST nebo RESTful API design (Representational State Transfer) je navržen tak, aby využil stávajících protokolů. Zatímco REST lze použít přes téměř jakýkoli protokol, obvykle využívá HTTP při použití pro Webová rozhraní API. To znamená, že vývojáři nemusí instalovat knihovny nebo další software, aby mohli využít návrhu REST API. REST API Design byl definován Dr. Roy Fielding v jeho 2000 doktorát disertační práce. Je pozoruhodný svou neuvěřitelnou vrstvou flexibility., Od data nejsou vázána na metody a prostředky, ZBYTEK má schopnost zvládnout více typů volání, návrat různých datových formátů, a dokonce i strukturálně měnit s správné provádění hypermedia.

tato svoboda a flexibilita spojená s designem REST API vám umožní vytvořit API, které vyhovuje vašim potřebám a zároveň splňuje potřeby velmi rozmanitých zákazníků. Na rozdíl od SOAP není REST omezen na XML, ale místo toho může vrátit XML, JSON, YAML nebo jakýkoli jiný formát v závislosti na tom, co klient požaduje., A na rozdíl od RPC, uživatelé nejsou povinni znát názvy postupů nebo specifické parametry v určitém pořadí.

nicméně, tam jsou nevýhody REST API design. Můžete ztratit schopnost udržovat stav v klidu, například v rámci relací, a pro novější vývojáře může být obtížnější používat. Je také důležité pochopit, co dělá REST API RESTful, a proč tato omezení existují před budováním API. Koneckonců, pokud nechápete, proč je něco navrženo tak, jak je, můžete bránit vašemu úsilí, aniž byste si to uvědomili.,

Pochopení REST API Design

Zatímco většina Api tvrdí, že být Klidný, oni nedosahují požadavky a omezení tvrdil, Dr. Fieldinga. Existuje šest klíčových omezení pro REST API design být vědomi při rozhodování o tom, zda se jedná o správný typ API pro váš projekt.

Klient-Server

klient-server omezení pracuje na konceptu, že klient a server by měly být odděleny od sebe, a nechá se vyvíjet samostatně a nezávisle na sobě., Jinými slovy, Měl bych být schopen provést změny ve své mobilní aplikaci, aniž by to ovlivnilo strukturu dat nebo návrh databáze na serveru. Současně bych měl být schopen upravit databázi nebo provést změny v mé serverové aplikaci bez ovlivnění mobilního klienta. To vytváří oddělení obav, nechat každou aplikaci růst a škálovat nezávisle na sobě a umožnit vaší organizaci rychle a efektivně růst.,

bez státní příslušnosti

REST API jsou bez státní příslušnosti, což znamená, že volání lze provádět nezávisle na sobě a každé volání obsahuje všechna data nezbytná k úspěšnému dokončení. REST API by se neměla spoléhat na data jsou uložena na serveru nebo relace se určit, co dělat s call, ale spíše spoléhat výhradně na údaje, které jsou poskytnuty v ten hovor sám. Identifikační údaje nejsou ukládány na serveru při volání. Místo toho má každý hovor sama o sobě potřebná data, jako je klíč API, přístupový token, ID uživatele atd., To také pomáhá zvýšit API spolehlivost tím, že všechny potřebné údaje, aby se hovor, namísto spoléhání se na sérii výzev s server stát vytvořit objekt, který může vyústit v částečné selže. Místo toho, aby se snížily požadavky na paměť a aby vaše aplikace byla co nejvíce škálovatelná, RESTful API vyžaduje, aby byl na klientovi uložen jakýkoli stav—nikoli na serveru.

Paměť

Protože bez státní příslušnosti API může požadavek na zvýšení režie při manipulaci s velkými břemeny příchozí a odchozí hovory, REST API by měla být navržena tak, aby podporovala ukládání vytvářených dat., To znamená, že když data je cacheable, odpověď by naznačují, že data mohou být uloženy na určitou dobu (vyprší-u), nebo v případech, kdy údaje musí být v reálném čase,, že reakce by neměl být ukládány do mezipaměti klienta. Povolením této kritické omezení, budete nejen výrazně snížit počet interakce s API, snížení vnitřní využití serveru, ale také poskytují své API uživatelům nástroje potřebné k poskytovat nejrychlejší a nejúčinnější aplikace je to možné. Mějte na paměti, že ukládání do mezipaměti se provádí na straně klienta., I když můžete být schopni mezipaměti některá data ve vaší architektuře provádět celkový výkon, záměrem je poučit klienta o tom, jak by měl pokračovat a zda klient může Data dočasně ukládat.

Jednotné Rozhraní

klíčem k oddělení klienta od serveru má jednotné rozhraní, které umožňuje nezávislý vývoj aplikace bez nutnosti aplikace, služby, modely, nebo akce, pevně spojen s API vrstva sama o sobě., Jednotné rozhraní umožňuje klientovi mluvit se serverem v jednom jazyce, nezávisle na architektonickém backendu. Toto rozhraní by mělo poskytovat neměnné, standardizované prostředky komunikace mezi klientem a serverem, například pomocí HTTP s URI resources, CRUD (Create, Read, Update, Delete) a JSON.

Vrstvený Systém

Jak už název napovídá, vrstvený systém je systém složený z vrstev, přičemž každá vrstva má specifickou funkci a odpovědnost., Pokud si myslíme, že Model View Controller framework, každá vrstva má svou vlastní odpovědnost, s modely zahrnující jak údaje by měly být vytvořeny, regulátor se zaměřením na příchozí akce a zobrazení se zaměřením na výstupu. Každá vrstva je samostatná, ale také interaguje s druhou. V REST API design platí stejný princip, přičemž různé vrstvy architektury spolupracují na vytvoření hierarchie, která pomáhá vytvářet škálovatelnější a modulární aplikaci.,

vrstvený systém také umožňuje zapouzdření stávajících systémů, a pohybovat méně běžně přístupné funkce pro sdílené zprostředkovatel a zároveň stínění více moderních a běžně používaných komponentů z nich. Navíc vrstvený systém vám dává svobodu pohybu systémů dovnitř a ven z vaší architektury, jak se technologie a služby vyvíjejí, zvyšuje flexibilitu a dlouhověkost, pokud udržujete různé moduly tak volně spojené, jak je to možné., Existují značné bezpečnostní výhody, které mají vrstvený systém, protože umožňuje zastavit útoky na proxy vrstvu nebo v jiných vrstvách, což jim brání dostat se do vaší skutečné architektury serveru. Využitím vrstvený systém s proxy, nebo vytvořit jednotný přístupový bod, jste schopni udržet kritický a více zranitelné aspekty architektury, za firewallem, brání přímé interakci s nimi klientem., Mějte na paměti, že bezpečnost není založena na jediném řešení „stop all“, ale spíše na tom, že má více vrstev s vědomím, že některé bezpečnostní kontroly mohou selhat nebo být obcházeny. Čím více zabezpečení jste schopni implementovat do vašeho systému, tím je pravděpodobnější, že předejdete škodlivým útokům.

Kód na Vyžádání

Možná nejméně známý ze šesti omezení, a pouze volitelné omezení, Kód na Vyžádání umožňuje kódu nebo applety být přenášen prostřednictvím rozhraní API pro použití v rámci aplikace., V podstatě vytváří inteligentní aplikaci, která již není závislá pouze na vlastní struktuře kódu. Nicméně, možná protože je předběhl svou dobu, Kód na Vyžádání bojoval za přijetí jako Webové Api jsou spotřebovány ve více jazycích a přenosu kódu, vyvolává bezpečnostní otázky a obavy. (Například adresář by musel být zapisovatelný a firewall by musel nechat to, co může být normálně omezeno obsahem.)

společně tato omezení tvoří teorii reprezentačního přenosu stavu nebo odpočinku., Když se podíváte zpět přes tyto můžete vidět, jak každá následující omezení navazuje na předchozí, nakonec vytváří poměrně složitá—ale výkonný a flexibilní—application program interface. Ale co je nejdůležitější, tato omezení tvoří design, který funguje podobně jako přístup k stránkám v našich prohlížečích na World Wide Web. Vytváří API, které není diktováno jeho architekturou, ale reprezentacemi, které se vrací, a API, které—i když je architektonicky bez státní příslušnosti—spoléhá na reprezentaci, která diktuje stav aplikace.,

pro více informací o REST API Design, Podívejte se na eBook nerušeně zbytek: průvodce pro navrhování perfektní API.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *