Wszyscy obecnie korzystają z SOA , nawet jeśli niektórzy tak naprawdę nie rozumieją, o co w tym wszystkim chodzi. Więc robią to źle. Używając tego jako analogii, wiem, czym jest REST (a przynajmniej tak mi się wydaje) i chcę to zrobić. Ale chcę to zrobić dobrze.
Więc moje pytanie brzmi: jaki jest właściwy sposób na REST?
rest
soa
resources
implementations
JohnDoDo
źródło
źródło
Odpowiedzi:
Cóż, istnieje wiele sposobów na nauczenie się, jak zbudować aplikację internetową RESTful i nie, nie ma wyjątkowej właściwej metody. RESTful nie jest standardem, ale wykorzystuje zestaw standardów (HTTP, URI, Mime Type, ...).
Zacznij od tego: Jak wyjaśniłem REST mojej żonie
Następnie wykonaj następujące czynności: RESTful Web Services Cookbook
A potem włóż cały swój wysiłek w tworzenie aplikacji internetowych, ponieważ najlepszym sposobem na naukę jest przeprowadzanie eksperymentów i możesz wiele nauczyć się na własnych błędach;)
Nie martw się, jeśli Twoje pierwsze aplikacje internetowe nie będą całkowicie ODPOCZYNEK: znajdziesz sposób, aby to zrobić!
Cytując Obi-Wana Kenobiego, „niech moc będzie z tobą!” ;)
EDYTOWAĆ
Ok, pozwól mi być bardziej konkretny. Chcesz stworzyć RESTful webapp, co? Cóż, jak powiedziałem, istnieje wiele sposobów, aby to zrobić, ale jest to główna wskazówka.
Definicja
REST (Representational State Transfer) to styl architektury oprogramowania dla systemu rozproszonego (np. WWW). Nie jest to standard, ale wykorzystuje zestaw standardów: HTTP, AJAX, HTML, URI, Mime Type itp. Mówimy o reprezentacji zasobu, a nie o samym zasobie. Zaczerpnięte z „Jak wyjaśniłem REST mojej żonie”:
Ograniczenia architektury
Jednolity interfejs
CRUD
Ok, widzieliśmy, że do identyfikacji zasobów możemy użyć URI, ale potrzebujemy czegoś innego do akcji (dodawania, modyfikowania, usuwania itp.): Wielkie powitanie w CRUD (tworzenie, czytanie, aktualizowanie i usuwanie).
Teraz, jeśli chodzi o PUT i DELETE, mogą pojawić się pewne problemy techniczne (dostaniesz je w formularzu HTML): często programiści omijają ten problem za pomocą POST dla każdego żądania „PUT” i „DELETE”. Oficjalnie musisz użyć PUT i DELETE. Nawiasem mówiąc, rób, co chcesz. Moje doświadczenie zmusza mnie do korzystania z POST i GET za każdym razem.
--- Należy użyć następnej części, ale nie jest to więź REST: dotyczy ona danych powiązanych ---
URI
Streszczenie URI ze szczegółów technicznych! Pożegnaj się z URI w następujący sposób:
Ponowne zaprojektowanie URI! Wybierz powyższy link i zmień go w następujący sposób:
To o wiele lepsze, prawda? Można to zrobić przez:
Kolejna rzecz: użyj innego identyfikatora URI do reprezentowania różnych zasobów:
Uwaga : about.html i about.rdf nie są plikami! Mogą być wynikiem transformacji XSLT!
Negocjacje treści
Jeśli osiągnąłeś ten punkt, gratulacje! Prawdopodobnie jesteś gotowy, aby uzyskać więcej abstrakcyjnych koncepcji, ponieważ wchodzimy w szczegóły techniczne Semantic Web;) Cóż, gdy twój klient chce zasobu, zwykle wysyła następujące żądanie:
Ale serwer nie odpowie na about.rdf, ponieważ ma inny identyfikator URI ( http://www.example.com/about.rdf ). Spójrzmy więc na wzór 303 ! Serwer zwróci to:
Klient podąży za linkiem zwróconym w następujący sposób:
Na koniec serwer zwróci żądany zasób:
Nie martw się: aplikacja kliencka nic z tego nie zrobi! Wzorzec 303 musi zostać wykonany przez aplikację serwera, a przeglądarka zajmie się resztą;)
Wniosek
Często teoria jest daleka od praktyki. Tak, teraz już wiesz, jak zaprojektować i opracować aplikację RESTful, ale powyższa wskazówka to tylko wskazówka. Znajdziesz najlepszy sposób na budowanie aplikacji internetowych i prawdopodobnie nie będzie to to, czego chce teoria. Nie przejmuj się: D!
Bibliografia
RESTful Web Services, Sameer Tyagi
Interfejsy API REST muszą być sterowane hipertekstem, Roy Thomas Fielding
Usługi RESTful Web: podstawy, Alex Rodriguez
Przepływ pracy REST Webbera
źródło
Książka biblijna nie jest konieczna; Miałem te same dokładne pytania i nauczyłem się wszystkiego, co potrzebowałem lub chciałem wiedzieć o REST, czytając te trzy artykuły:
Jak przeczytasz w powyższych artykułach, kluczem jest pomyślenie o dostępnych elementach aplikacji jako „zasobach”, które można tworzyć, pobierać, aktualizować lub usuwać za pomocą istniejących „czasowników” HTTP: GET, PUT, POST , KASOWAĆ.
Ponadto poznaj różnicę między PUT a POST i kiedy ich używać. GET, PUT i DELETE powinny być transakcjami idempotentnymi, POST nie.
Podczas komunikacji z klientem należy również właściwie wykorzystywać kody stanu HTTP .
źródło