Cache danych na PUT/POST

Cache danych na PUT/POST
Escanor16
  • Rejestracja:prawie 5 lat
  • Ostatnio:2 dni
  • Postów:366
0

Cześć, tym razem ja mam pytanie, cacheowanie danych na GET to prosta sprawa ale wie ktoś może jak w node zrobić cacheowanie danych na PUT albo POST?


Nie chciałem być programistą jednak tego zechciał świat.
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
0

A dlaczego chcesz to zrobić?


Bo C to najlepszy język, każdy uczeń ci to powie
Escanor16
Ponieważ jak coś zmienie w tabeli(PUT-em) to chcę żeby to było cacheowane
AK
karkołomna propozycja
mr_jaro
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
2

Jeśli chcesz cachować dane pust/put to znaczy że coś źle masz zrobione. post i put słuzy do wysyłania danych a w odpowiedzi powinieneś dostać informację czy się to powiodło i jeśli tak w niektórych przypadkach ten dodany rekord (post) z uzupełnionymi dodatkowymi już danymi np id, created_at itp, lub ten rekord po aktualizacji (put). Więc co tu chcesz cachować?


It's All About the Game.
Zobacz pozostały 1 komentarz
mr_jaro
@Escanor16: nie musisz bo nie masz takiej możliwości, np jak chcesz cachować endpoint POST /news/create skoro każdy request tworzy nowe rekordy i w odpowiedzi musisz otrzymać ten nowy rekord lub po prostu puste dane ze statusem 200?
AI
A co w przypadku gdy do wyciągania danych potrzebujesz np. podać multum kryterii? Get nie zezwala na Body. Oczywiście można to podać np. w URI jako QueryParam/PathVariable czy coś, tylko z tego co kojarzę mogą zaistnieć problemy z tym, że w URI jest za długie (ostatnio tutaj ktoś wątek założył, że Cors mu jakieś problemy robił, a okazało się po prostu że requestowany URI był za długi).
mr_jaro
@Aisekai: to sa 2 wyjścia, albo ten projekt jest skopany/ustawienia serwera są skopane (tak, akceptowalną długość urla da się ustawić na serwerze) albo powinno się robić cache inny niż ajaxowy.
AI
Zgadzam się, tylko mi bardziej chodziło o to, że mogą być inne przypadki dla których ktoś korzysta z PUT/POST, mimo że są one sprzeczne z założeniami RESTa :D
mr_jaro
@Aisekai: no spoko, tylko, że jesli to już tak zaawansowane rzeczy to wątpie by ktokolwiek miał potrzebę używania cachu ajaxowego. Sam zresztą zawsze to gunwo wyłączam bo tylko przeszkadza i cache robię w zalezności od potrzeb taki jak jest potrzebny a nie liczę na obsługę przeglądarki
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
0
Escanor16 napisał(a):

Cześć, tym razem ja mam pytanie, cacheowanie danych na GET to prosta sprawa ale wie ktoś może jak w node zrobić cacheowanie danych na PUT albo POST?

idempotent GET, POST, DELETE
non idempotent POST

https://developer.mozilla.org/en-US/docs/Glossary/safe
https://nordicapis.com/understanding-idempotency-and-safety-in-api-design/

PUT, DELETE można dyskutować ale POST? 2 razy POST ma dać utworzone 2 rozróżnialne rekordy


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
Escanor16
o POST możemy zapomnieć, jedynie PUT mnie interesuje tak faktycznie
BraVolt
No dobrze, a ACID? PUT dla nieistniejącego zasobu stworzy go, dla istniejącego zaktualizuje. Przyjdą 3 PUT, przyjdzie GET, przyjdą PUT. Zasób do utworzenia siedzi w cache czyli w systemie go jeszcze nie ma, a według tego co przychodzi powinien być, być aktualny i odpowiadać aktualnym stanem na GET. Obowiązkowo: Problem czytelników i pisarzy. Znane, rozwiązane, ale na pewno tego chcesz w swoim rozwiązaniu?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.