Ostatnio zainteresowałem się zapoznaniem z REST. Próbowałem przeczytać pozycję wiki w REST , ale to nie pomogło. Byłbym bardzo wdzięczny, gdyby ktoś mógł wyjaśnić prostym językiem angielskim (bez niepotrzebnego żargonu technicznego)
- Co to jest REST
- Jaką pozycję zajmuje w ekosystemie architektury internetowej
- Jak ściśle (lub luźno) jest sprzężony z protokołem.
- Jakie są alternatywy dla REST i jak się z nimi porównuje REST.
Rozumiem, że odpowiedź na to pytanie w jednym lub dwóch akapitach może być niemożliwa. W takim przypadku odpowiednie linki będą mile widziane.
Odpowiedzi:
Zwykły angielski:
Reprezentacja: czyn mówienia lub działania w imieniu kogoś.
Przeniesienie stanu: status przeniesienia.
Techniczny:
REST vs SOAP
źródło
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.)
źródło
state transfer
reprezentacji. czynność mówienia lub działania w imieniu kogoś jest reprezentacją, jak to działa w tym kontekście?Chociaż REST jest skrótem reprezentatywnego transferu stanu, łatwiejsze może być rozważenie pomysłu wykonywania różnych działań za pomocą nieco intuicyjnego interfejsu.
Na przykład adres URL, taki jak http://www.mysite.com/FindProduct/125/, można interpretować jako osobę, która chce uzyskać informacje o produkcie o identyfikatorze 125.
Podczas gdy REST jest zwykle rozpatrywany w kategoriach HTTP, pojęcie to można zastosować do innych protokołów, jak wskazano w odnośniku do Wikipedii.
Inne przykłady REST, które mogą być przydatne:
źródło