Representational State Transfer
architektura rozhraní pro práci s daty v distribuovaném prostředí / From Wikipedia, the free encyclopedia
Representational state transfer (REST) je termín z počítačových věd, cesta, jak jednoduše vytvořit, číst, aktualizovat (editovat) nebo smazat informace ze serveru pomocí jednoduchých HTTP volání. Jde o obecně přijímaný příklad (paradigma) softwarové architektury distribuovaných systémů, zejména webových služeb. REST je abstrakce struktury a chování World Wide Webu. Cílem REST je vytvořit architektonický styl, který lépe splňuje požadavky moderního webu.
Šest požadavků (zásad, charakteristik, také architektonických principů) kladených na architektonický styl vyhovující paradigmatu REST:[1][2]
- klient-server (Client-Server) – klient a server jsou nezávislí
- bezestavový (Stateless) – server stav klienta nezaznamenává
- ukládání do mezipaměti (Cache) – server označuje data ukládaná do mezipaměti
- jednotné rozhraní (Uniform Interface) – server vystavuje klientovi prostředky jednotným a předvídatelným způsobem
- vícevrstvý systém (Layered System) – prostředníci mezi klientem a serverem chování neovlivňují
a volitelný
- kód na vyžádání (Code-On-Demand) – server klientovi může přidat další funkce tím, že mu pošle kód, který může tento klient spustit[3]
Především požadavek na jednotné rozhraní odlišuje paradigma REST od ostatních architektonických stylů. Jakým způsobem musí být tyto zásady prováděny, stanoveno není.
Roy Fielding, jeden z hlavních autorů specifikace HTTP a autor architektonického stylu REST, popisuje výhody a nevýhody jednotlivých architektonických principů ve své disertační práci Architectural Styles and the Design of Network-based Software Architectures z roku 2000[1] v kapitole 5, kde principy RESTu odvozuje na základě známých přístupů k architektuře.
Rozhraní REST je použitelné pro jednotný a snadný přístup ke zdrojům (resources). Zdrojem mohou být data, stejně jako stavy aplikace (pokud je lze popsat konkrétními daty). REST je tedy na rozdíl od známějších XML-RPC či SOAP, orientován datově, nikoli procedurálně. Všechny zdroje mají vlastní identifikátor URI a REST definuje také čtyři základní metody pro přístup k nim překrývající se s funkcemi CRUD[2], pro vytváření (Create), čtení (Read), aktualizaci (Update) a mazání (Delete).