Sobes.tech
Junior

Opowiedz o metodzie PUT w REST API.

sobes.tech AI

Odpowiedź od AI

Metoda PUT służy do tworzenia lub aktualizacji zasobu pod wskazanym URI.

Kluczowe cechy:

  • Idempotentność: Wielokrotne wykonanie tego samego żądania PUT z tym samym ciałem doprowadzi do tego samego stanu zasobu na serwerze (choć odpowiedź serwera może się różnić).
  • Pełna zamiana: Żądanie PUT wysyła pełną reprezentację zasobu, zastępując istniejący.
  • Tworzenie lub aktualizacja: Jeśli zasób pod wskazanym URI nie istnieje, PUT go tworzy. Jeśli istnieje, aktualizuje. Brak zasobu przy pomyślnym żądaniu PUT zwykle skutkuje utworzeniem, co zazwyczaj zwraca status 201 Created. Aktualizacja istniejącego zasobu zwykle zwraca 200 OK lub 204 No Content (jeśli w odpowiedzi nie ma ciała).

Typowe scenariusze użycia:

  • Pełna aktualizacja profilu użytkownika.
  • Tworzenie zasobu, jeśli klient określa jego URI.

Przykład żądania PUT:

PUT /users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json

{
  "id": 123,
  "name": "Nowa Nazwa",
  "email": "new.email@example.com"
}

Serwer otrzyma to żądanie i albo utworzy użytkownika z id=123, albo całkowicie zastąpi informacje o użytkowniku z tym ID danymi z ciała żądania.

PUT różni się od POST w następujący sposób:

  • PUT służy do aktualizacji lub tworzenia zasobu pod znanym URI, które jest określane przez klienta. POST służy do tworzenia zasobu, gdzie serwer określa URI nowego zasobu, lub do innych działań, które nie pasują do innych metod HTTP.
  • PUT jest idempotentny, POST nie. Wielokrotne żądania POST z tym samym ciałem mogą tworzyć wiele identycznych zasobów lub wywołać różne efekty uboczne.

Tabela porównawcza PUT i POST:

Cecha PUT POST
Cel Tworzenie lub aktualizacja zasobu Tworzenie zasobu, wysyłanie danych
Idempotentność Tak Nie
Definicja URI Przez klienta Przez serwer
Wpływ na zasób Całkowicie go zastępuje lub tworzy Zazwyczaj dodaje lub wykonuje akcję