Czy metoda PUT API moze zwracac inne ID

0

Witam,

Czy zadanie aktualizacji obiektu PUT w API moze zwracac za kazdym razem inne ID? Chodzi o to, ze tak zosto napisany modul i w sumie troche ma to sens, bo dane sa wyszukiwane kompletnie nie po ID a po data itd. A ID sa tworzone inne, bo ktos chcial utrzymac historie zmian. Niby spoko, ok, moge zrozumiec takie rozwiazanie. Ale zastanawiam sie czy sa jakies zasady co do tego co ma zwracac metody PUT? Czy np w przegladarde nie zostanie to zle zinterpretowane i moze wyskoczy blad itd?

1

Błąd na pewno nie wyskoczy, bo Rest to jest bardziej zbiór wytycznych, niż zasad.

Co do tego "czy powinno", to to co pokazałeś w ogóle nie brzmi jak Rest, także tak czy tak nie jesteś w zgodzie ze standardem.

0

Blad w REST i nie, ale na FE tworzy sie przekierowanie i niekonczaca sie petla :) Wydaje mi sie, ze walsnie przegladarka to inaczej interpretuje.

0
poniatowski napisał(a):

Mozesz rozwinac swoja mysl? Czyli uwazasz, ze musi wyrzucic to samo ID? :)

W takim Rest by the book, nie ma takiego pojęcia jak id. Nie ma idei atrybutu właściwie, który jednoznacznie identyfikowałby zasób, bo wszystkie element w Rest powinny być zasobem, np plikiem. (tzn powinny być reprezentowane jako plik). id to pole jak każde inne, tak samo jak last_modified_at.

Ale pomijając, to to rozwiązanie które zaprezentowałeś w pierwszym poście w ogóle nie wygląda jak Rest, być może to wcale nie jest restowe API, tylko takie API bardziej "random endpoints i random values", czyli w sumie API po HTTP bez paradygmatu?

0
poniatowski napisał(a):

Witam,

Czy zadanie aktualizacji obiektu PUT w API moze zwracac za kazdym razem inne ID? Chodzi o to, ze tak zosto napisany modul i w sumie troche ma to sens, bo dane sa wyszukiwane kompletnie nie po ID a po data itd. A ID sa tworzone inne, bo ktos chcial utrzymac historie zmian. Niby spoko, ok, moge zrozumiec takie rozwiazanie. Ale zastanawiam sie czy sa jakies zasady co do tego co ma zwracac metody PUT? Czy np w przegladarde nie zostanie to zle zinterpretowane i moze wyskoczy blad itd?

No nie moze, nie ma znaczenia czy rekord wyszukujesz po dacie czy po wyrazie w komentarzu czy po dlugosci jakiegs pola. Aktulizujesz rekord i tak po danym ID tego co wyszukales. Wiec modul napisal prawdopodbnie Stivi Londer ktory nie ogarnia tematu. Ale ze ty mozesz to zrozumiec to juz mnie zdziwilo. czyli aktualizuje sobie rekord po dacie tak? update costame where data = data i wtedy dostaje losowe ID czyli przypadkowo zaktualizowalem sobie teraz rekord ID=78 a za 10 sekund moze zaktualizuje ID = 198 zobacze jeszcze hahahah.

Historia zmian nie ma nic do tego. jesli jest wiersz id = 7 i aktualizujesz ten rekord to do histroycznej wpada przez wywolanie trigera on insert or update ze rekord id 7 ma teraz takie parametry. ale powinno ci zwrocic ze zaktualizowales ID = 7 z normalnej tabeli, a nie jakies losowe z d**y albo jeszcze sie okaze ze aktualizujesz historyczna tabele :)

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