REST API - pobranie dużej ilości danych

0

Hej,

Chciałabym usprawnić zapytanie API (GET), które zwraca JSON z dość dużą ilością danych.
Czy ktoś z Was orientuje się, czy da się zastosować coś w stylu ChunckedOutput, jeśli dane odbierane są przez JS (angular)?

Może macie na to jakieś sprawdzone sposoby?
Dodam, że po stronie serwera jest Java i Jersey a po stronie klienta angularJS.

Z góry dzięki za fajne pomysły! :)

0

Z tego co mi wiadomo to w REST można zastosować stronicowanie danych(sam rest jest bezstanowy więc nie może pamiętać kto od niego te dane żąda), a dane zbuforowane trzymać w cache. Hibernate powinien mieć jakieś funkcję do tego.

0

Może do stremingu (chunks) wykorzystać EventSource? Jest to łatwo wspierane w Jersey (trzeba doinstalować plugin, poza specyfikacją JAX-RS).
https://jersey.java.net/documentation/latest/sse.html

0

Stronicowanie danych i cache już są stosowane, tam gdzie jest to możliwe.
Zaczęłam rozpoznawać EventSource, ale wg dokumentacji nie jest wspierany przez IE :(

0

Dziwne, że nie wspierają (HTML5). Zawsze można rozważyć zastosowanie WebSockets, skoro IE musi być wspierane. Tyle, że WebSockets jest dwukierunkowe, a EventSource jest jednokierunkowe.

Znalazłem work-a-round na brak SSE wspominają o polyfill można wypróbować:
http://stackoverflow.com/questions/24498141/is-there-a-microsoft-equivalent-for-html5-server-sent-events

0

Taki mały hint, sprawdź sobie, czy to za czym stoi Twoja aplikacja pozwala na websockety(baj baj Amazon), albo jakieś proxy nie będzie wyrzucała Ci z hederów informacji o chankowanym responsie. Tym bym się martwił bardziej niż internet explorerem :D

P.S

pozdrawiam @furious programming , jak tam pascal ?

0

@margor90 jeżeli infrastruktura nie wspiera websocketow (np ow amazon), żadne tunelowanie nie pomoże, bo nie jesteś w stanie tego ominąć. Jeżeli coś co działa jako proxy i jest np provajderem oauth'a (macie jakiś jeden endpoint przez który przechodzi każdy request) też nic nie zrobisz :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1