Na mojej stronie internetowej, jeśli chcę wyświetlać dynamiczne listy rozwijane (np. Nazwy miast na podstawie wybranego kraju), mogę to zrobić za pomocą AJAX. Ale mogę to również zrobić za pomocą wywołania REST. Więc którego powinienem użyć?
Mój problem polega na tym, że tak naprawdę nie dostaję różnicy między REST a jakimikolwiek innymi żądaniami przeglądarki HTTP. Przejrzałem formalne definicje REST i wydaje się to identyczne z żądaniem HTTP. Czym więc REST z natury różni się od AJAX?
Odpowiedzi:
Yyy ... nie. Te dwie są całkowicie ortogonalne. Jeśli chcesz zaktualizować swoją stronę z danymi trzeba uzyskać z serwera, to będzie to zrobić za pomocą AJAX. Nie ma innego wyjścia. I to wywołanie AJAX może używać REST lub czegoś innego.
REST wezwanie jest żądanie HTTP, zawsze. Chociaż można go używać do obsługi zwykłych wywołań przeglądarki (takich jak przesyłanie formularzy) i zwracania pełnych stron HTML, zwykle jest używany do obsługi wywołań API, które zwracają tylko dane (zwykle w formacie JSON).
Ponieważ REST jest specyficznym stylem korzystania z HTTP, prawdopodobnie używającym go tak, jak pierwotnie miał być używany, ale którego większość ludzi nie „dostała” i dlatego była rzadko używana przez prawie 2 dekady.
W szczególności REST oznacza kodowanie encji, którą chcesz pobrać lub manipulować w samym adresie URL (zwykle za pomocą identyfikatora) i kodowanie akcji, którą chcesz na nim wykonać w zastosowanej metodzie HTTP (GET dla pobierania, POST dla zmiany, PUT dla tworzenia , USUŃ, aby usunąć).
źródło
Myślę, że najpierw musisz zrozumieć, że AJAX i REST nie są tak naprawdę alternatywami dla twojego przypadku użycia. AJAX oznacza asynchroniczny javascript i XML, więc jeśli używasz javascript do ładowania danych po zakończeniu żądania przeglądarki, robisz AJAX.
Z drugiej strony REST oznacza Reprezentatywny transfer stanu, który, jak wskazał Stefan Billet, wykorzystuje żądania HTTP do przesyłania danych. Tak więc REST jest w rzeczywistości jednym ze sposobów wykonywania AJAX. SOAP będzie kolejnym, ale to nie jest temat na twoje pytanie. Twoje pytanie powinno raczej brzmieć: „Która technologia jest najlepsza dla mojego przypadku użycia?”
W takim przypadku polecam zastanowienie się nad ilością danych wykorzystywanych w twoich listach rozwijanych. Jeśli masz tylko kilka elementów, możesz mieć je wszystkie na swojej stronie i po prostu użyć javascript, aby wyświetlić odpowiednie. Drugą opcją może być użycie wywołania REST z JSON jako reprezentacją, ponieważ jest łatwy w użyciu z javascript i bardzo lekki, co oczywiście oznaczałoby również wykonanie AJAX.
źródło
Usługa REST używa czasowników HTTP GET, POST, PUT, DELETE odpowiednio do pobierania, wstawiania, aktualizowania i usuwania zasobów na serwerze. Np. GET z adresem URL: kontroler / klient / {id}
Alternatywą jest dodanie metod do kontrolera, takich jak GetCustomerById (id), InsertCustomer (klient), UpdateCustomer (klient), DeleteCustomer (klient). Jest to tak zwane podejście RPC. Np. GET z url: controller / GetCustomerById? Id = {id}
Jedną z różnic jest to, że interfejs API REST jest w pewnym stopniu przewidywalny. Jeśli znasz REST i znasz nazwę odpowiedniego zasobu (np. Klient), możesz od razu wskoczyć i użyć kontrolera REST ze standardowymi czasownikami.
Dzięki podejściu RPC musisz wiedzieć, jakie metody są na twoim kontrolerze, jakie argumenty biorą, itp. Podpisy te mogą się różnić w zależności od kontrolera, od aplikacji do aplikacji.
Z drugiej strony AJAX jest tylko asynchronicznym sposobem umieszczania wyżej wymienionych żądań, zarówno jako wywołanie REST, jak i wywołanie RPC.
źródło