Co to jest REST?
Reprezentacyjny transfer stanu. Opisuje, w jaki sposób jeden system może komunikować się z innym stanem. Przykładem może być stan produktu (jego nazwa, opis itp.) Reprezentowany jako XML, JSON lub zwykły tekst. Uogólniona idea stanu nazywana jest zasobem.
Jaką pozycję zajmuje w ekosystemie architektury internetowej?
REST jest zwykle powiązany z interfejsem usług sieciowych, ponieważ HTTP jest zdecydowanie najpopularniejszym protokołem operatora. W modelu 7-warstwowym istnieje na warstwie aplikacji . Jednak zobacz następną sekcję.
Jak ściśle (lub luźno) jest sprzężony z protokołem?
REST nie jest HTTP. Używa HTTP, ponieważ w swojej najbardziej ogólnej formie REST istnieje, aby pomóc maszynie w odwzorowaniu pojęcia czasownika na dowolny zbiór rzeczowników. HTTP zawiera przydatny zestaw czasowników ogólnych (GET, PUT, PATCH itp.), Które można stosować do dowolnych rzeczowników wyrażonych jako URI za pomocą HTTP, np. GET http://example.org/Product(54 ).
Jakie są alternatywy dla REST i jak się z nimi porównuje REST
Jest to podobne do pytania „Jak RESTful jest moim podejściem?” Skorzystaj z poniższej listy (podsumowanej z modelu dojrzałości Richardsona zgodnie z opisem Martina Fowlera ):
Poziom 0 - Bagno POX
Użyj POST do wszystkiego (odczytuje, zapisuje, usuwa). To SOAP, POX, RPI itp. Po prostu używasz HTTP jako tunelu dla własnego protokołu. Celujesz w jeden punkt końcowy, który robi wszystko w oparciu o treść treści żądania.
Poziom 1 - zasoby
Użyj POST do wszystkiego. Kieruj reklamy na wiele punktów końcowych zaprojektowanych tak, aby wyświetlać informacje o określonej rzeczy. Właśnie odkryłeś zasoby.
Poziom 2 - czasowniki HTTP
Używaj czasowników HTTP przeciwko zasobom. Teraz to dostajesz. POST jest do utworzenia, PUT do nadpisania, OPCJE dla dostępnych operacji, USUŃ, no cóż, usuń zasób. W wyniku użycia tych czasowników różne kody statusu HTTP stają się coraz bardziej odpowiednie (202 AKCEPTOWANY ktoś?).
Poziom 3 - Kontrola hipermedialna ( HATEOAS )
W tym momencie dokonujesz ostatniego skoku i wprowadzasz hypermedia jako mechanizm kontroli przepływu. Klient REST nie potrzebuje wcześniejszej wiedzy na temat interakcji z konkretną aplikacją lub serwerem poza ogólnym rozumieniem hipermediów. Można to przekazać w HTTP za pomocą pola nagłówka Content-Type. Formaty tekstowe obejmują AtomPub i (bardziej zwięzły) HAL , podczas gdy HyperAudio działa dobrze dla strumieni audio (patrz SoundCloud i in.)