Nie jestem w stanie zrozumieć, czy zdarzenia wysłane przez serwer HTML5 rzeczywiście pasują do architektury ReST. Rozumiem, że NIE wszystkie aspekty HTML5/HTTP muszą pasować do architektury ReST. Ale chciałbym się dowiedzieć od ekspertów, która połowa HTTP jest SSE w (Reful połowa lub druga połowa!).Czy korzystasz z Rejestrujących wysyłane przez serwer HTML5 (SSE)?
Jednym z poglądów może być fakt, że jest to RESTful, ponieważ istnieje "początkowe" żądanie HTTP GET od klienta do serwera, a pozostałe mogą być postrzegane jako odpowiedzi o treści częściowej tylko o innej treści (" text/event-stream ")
Zapytanie wysłane bez pojęcia, ile odpowiedzi przyjdzie jako odpowiedź (zdarzenia)? Czy to jest ReSTful?
Motywacja do pytania: Rozwijamy stronę serwerową aplikacji i chcemy wspierać zarówno klientów ReST (ogólnie), jak i przeglądarek (w szczególności). Chociaż SSE będą działać dla większości klientów przeglądarek HTML5, nie jesteśmy pewni, czy SSE są odpowiednie do obsługi przez czystego klienta ReST. Stąd pytanie.
Edit1: czytał Roy Fielding stary article, gdzie mówi: Jako takie, życzliwy użytkownik może produkować „Innymi słowy, pojedynczy Wyniki żądanie użytkownika w potencjalnie dużą liczbę obowiązków serwerowych. nieproporcjonalne obciążenie wydawcy lub brokera rozpowszechniającego powiadomienia W Internecie nie mamy luksusu projektowania tylko dla życzliwych użytkowników, a zatem w systemach HTTP takie żądania nazywamy exploitem odmowy usługi ... Właśnie dlatego nie ma standardowego mechanizmu powiadomień w HTTP "
Czy to oznacza, że SSE nie jest PRAWDZIWY?
Edit2: Przeszedłem przez API REST na Twitterze. Chociaż purytanie REST mogą debatować, jeśli ich REST API jest naprawdę/w pełni WYPOCZYNKU, tylko tytuł sekcji Differences between Streaming and REST wydaje się sugerować, że przesyłanie strumieniowe (a nawet SSE) nie może być uważane za POTRZEBNE! Ktoś to twierdzi?
Dzięki! Zgadzam się z twoimi punktami dotyczącymi HATEOAS. Spodziewam się, że wydarzenia będą podlegały temu ograniczeniu, mimo że SSE tego nie wymaga. Moje pytanie dotyczy raczej konkretnej kwestii: "Przesłany wniosek bez żadnego pojęcia, ile odpowiedzi przyjdzie jako odpowiedź (zdarzenia)? Czy to jest ReSTful? ' – brainOverflow
Cóż, myślę, że" odpowiedź "nie jest właściwym pojęciem - jeśli złożę wniosek o transmisję strumieniową z kamery na żywo, nie mogę powiedzieć, ile danych dostanę jako" odpowiedź ", dobrze? Nie sądzę, że to w szczególności nie jest - REST, ponieważ odpowiedź musi zawierać mechanizm, dzięki któremu mogę przejść do innego stanu (a "powrót" jest niejawnym przejściem stanu dla aplikacji klienckiej). SSE anuluje wydarzenie. –
Jeśli to naprawdę ci przeszkadza, powiedziałbym, że wydarzenia nie są WYDOBYWCZE, ale że reszta architektury jest - możesz to sformułować jako "przejście stanu w naszej architekturze jest reprezentacyjne". a następnie ustaliłeś, co tak naprawdę jest "REST" - chodzi o zmianę stanu. Powiadomienia o zdarzeniach nie są częścią zmiany stanu, ponieważ po prostu odbieranie zdarzenia nie * ma * wywoływania zmiany stanu w aplikacji. –