Jaka jest różnica między metodami PUT a POST? Jak zachowują się przy ponownym wysłaniu tego samego żądania? Co robi PATCH?
sobes.tech AI
Odpowiedź od AI
Metody HTTP PUT i POST różnią się semantyką i zachowaniem:
-
PUT — metoda idempotentna, używana do pełnej aktualizacji zasobu pod wskazanym URL. Ponowne wysłanie tego samego żądania PUT nie zmieni wyniku, ponieważ zasób zostanie nadpisany tymi samymi danymi.
-
POST — metoda nieidempotentna, zwykle używana do tworzenia nowych zasobów lub wykonywania działań. Ponowne wysłanie żądania POST może prowadzić do duplikatów lub powtórzenia operacji.
-
PATCH — używana do częściowej aktualizacji zasobu, wysyłając tylko zmienione pola. W przeciwieństwie do PUT, który zastępuje cały zasób, PATCH stosuje zmiany do istniejącego obiektu.
Przykład:
PUT /users/123
{
"name": "Иван",
"age": 30
}
PATCH /users/123
{
"age": 31
}
POST /users
{
"name": "Иван",
"age": 30
}
Ponowne wysłanie PUT tymi samymi danymi nie zmieni zasobu, ponowne wysłanie POST utworzy nowego użytkownika, a ponowne wysłanie PATCH zaktualizuje wiek ponownie.