Sobes.tech
Senior

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.