2014-10-16 13 views
5

Jestem nowicjuszem dla API RESTful i wszędzie, gdzie czytałem, że interfejsy API REST "muszą być sterowane hipertekstem". Często googlowałem, ale nie znalazłem konkretnego wyjaśnienia tego pojęcia. A więc:Co to znaczy, że REST powinien być sterowany hipertekstem?

Co to znaczy, że interfejsy API REST powinny być "sterowane hipertekstem" ?.

Odpowiedz

10

When I say hypertext, I mean the simultaneous presentation of information and controls such that the information becomes the affordance through which the user (or automaton) obtains choices and selects action. Roy T. Fielding - http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

Chodzi o jedną z podstawowych ograniczeń architektury REST - Hypermedia jako silnik Application państwa (w skrócie hateoas). Oznacza to, że w danym momencie klient, w oparciu o hipermedia w reprezentacji bieżącego zasobu, musi mieć wszystkie informacje, jakich potrzebuje, aby zdecydować, dokąd dalej przesiadać (zmienić jego Stan Aplikacji). Ta hipermedia kontroluje hipertekst łączy zasoby ze sobą i opisuje ich możliwości w sposób czytelny dla komputera. Klient REST musi znać jedną rzecz, aby komunikować się z serwerem REST - zrozumienie hipermedii. Po przeciwnej stronie, w architekturze zorientowanej na usługi (SOA), klienci i serwery współdziałają poprzez stały interfejs współdzielony przez dokumentację lub język opisu interfejsu (IDL).

HATEOAS oddziela klienta i serwer, aby można je było rozwijać osobno.

Na przykład

Jeśli dokona wstępnego połączenia z usługą spoczynku dodać klientowi korzystanie z niektórych URL/klientów/wtedy dostaniesz odpowiedź z powrotem (rozważyć klient pomyślnie dodana),

HTTP/1.1 201 Created 
Location: http://www.myREST/customers/<uuid>/ 

Teraz klient, który wykonał połączenie, aby dodać klienta, wie, jak znaleźć odpowiedniego klienta z linku zwróconego jako nagłówek odpowiedzi.

Możesz zapytać, w jaki sposób klient wie, że może wystawić POST na/customer /. W różny sposób - kontrola hipermedialna, specyficzne dla DSL formaty i profile.

0

REST oznacza, że ​​api działa poprawnie w przypadku HTTP Verbs, kodu statusu itp. Protokół HTTP ma takie czasowniki jak: GET, POST, PUT, OPTIONS i DELETE. W api odpoczynku każdy czasownik jest mapą do określonej akcji na zasobie. Na przykład: POST zawsze tworzy nową instancję zasobu; GET otrzymuje zasób (lub listę), DELETE zawsze usuwa powiązane zasoby; Dodatkowo należy użyć kodu statusu do wskazania odpowiedzi: 201 do utworzenia, 200 do modyfikacji itp.

Możesz uzyskać więcej informacji na temat http://restinpractice.com/book/ (Jim Weber książka)

+0

Nie, "REST" nie oznacza "poprawnego działania HTTP". Ta ostatnia jest dobra, ale REST zapewnia znacznie więcej aspektów. –

+0

Dzięki. Kiedy powiedziałem poprawnie, mam na myśli, przywłaszczone użycie w api. Dzięki jeszcze raz. –