Jaka jest różnica między metodami PUT, POST i PATCH w protokole HTTP?
Jaka jest różnica między metodami PUT, POST i PATCH w protokole HTTP?
Odpowiedzi:
Różnica między PUT, POST, GET, DELETE i PATCH IN Czasowniki HTTP:
Najczęściej używane czasowniki HTTP POST, GET, PUT, DELETE są podobne do operacji CRUD (tworzenie, odczyt, aktualizacja i usuwanie) w bazie danych. Możemy określić te czasowniki HTTP w kapitale sprawy. Poniżej znajduje się porównanie między nimi.
PATCH: Przekazuje częściową modyfikację zasobu. Jeśli musisz zaktualizować tylko jedno pole dla zasobu, możesz użyć metody PATCH.
Uwaga:
Ponieważ POST, PUT, DELETE modyfikuje zawartość, testy z Fiddler dla poniższego adresu URL naśladują aktualizacje. Nie usuwa ani nie modyfikuje. Możemy po prostu zobaczyć kody stanu, aby sprawdzić, czy występują wstawienia, aktualizacje i usunięcia.
URL: http://jsonplaceholder.typicode.com/posts/
1) POBIERZ:
GET jest najprostszym rodzajem metody żądania HTTP; ten, którego używają przeglądarki za każdym razem, gdy klikasz link lub wpisujesz adres URL w pasku adresu. Instruuje serwer, aby przekazał dane określone przez adres URL do klienta. Dane nigdy nie powinny być modyfikowane po stronie serwera w wyniku żądania GET. W tym sensie żądanie GET jest tylko do odczytu.
Sprawdzanie za pomocą Fiddlera lub PostMan: Możemy użyć Fiddlera do sprawdzenia odpowiedzi. Otwórz Skrzypek i wybierz kartę Utwórz. Podaj czasownik i adres URL, jak pokazano poniżej, i kliknij przycisk Wykonaj, aby sprawdzić odpowiedź.
Czasownik: GET
URL: http://jsonplaceholder.typicode.com/posts/
Odpowiedź: Otrzymasz odpowiedź jako:
„userId”: 1, „id”: 1, „title”: „sunt aut ...”, „body”: „quia et suscipit ...”
W ścieżce „happy” (lub bez błędu) GET zwraca reprezentację w XML lub JSON i kod odpowiedzi HTTP o wartości 200 (OK). W przypadku błędu najczęściej zwraca wartość 404 (NIE ZNALEZIONO) lub 400 (ZŁE WNIOSEK).
2) POST:
Czasownik POST jest najczęściej wykorzystywany do tworzenia nowych zasobów. W szczególności służy do tworzenia podrzędnych zasobów. Oznacza to, że podporządkowany jest innemu zasobowi (np. Rodzicowi).
Po pomyślnym utworzeniu zwróć stan HTTP 201, zwracając nagłówek lokalizacji z łączem do nowo utworzonego zasobu o stanie 201 HTTP.
Sprawdzanie za pomocą Fiddlera lub PostMan: Możemy użyć Fiddlera do sprawdzenia odpowiedzi. Otwórz Skrzypek i wybierz kartę Utwórz. Podaj czasownik i adres URL, jak pokazano poniżej, i kliknij przycisk Wykonaj, aby sprawdzić odpowiedź.
Czasownik: POST
URL: http://jsonplaceholder.typicode.com/posts/
Żądanie treści:
data: {title: „foo”, body: „bar”, userId: 1000, Id: 1000}
Odpowiedź: Otrzymasz kod odpowiedzi jako 201.
Jeśli chcemy sprawdzić wstawiony rekord o Id = 1000, zmień czasownik na Get i użyj tego samego adresu URL i kliknij Wykonaj.
Jak wspomniano wcześniej, powyższy adres URL pozwala tylko na odczyt (GET), nie możemy odczytać zaktualizowanych danych w rzeczywistości.
3) PUT:
PUT jest najczęściej wykorzystywany do aktualizacji , PUT do znanego identyfikatora URI zasobu z treścią żądania zawierającą nowo zaktualizowaną reprezentację oryginalnego zasobu.
Sprawdzanie za pomocą Fiddlera lub PostMan: Możemy użyć Fiddlera do sprawdzenia odpowiedzi. Otwórz Skrzypek i wybierz kartę Utwórz. Podaj czasownik i adres URL, jak pokazano poniżej, i kliknij przycisk Wykonaj, aby sprawdzić odpowiedź.
Czasownik: PUT
URL: http://jsonplaceholder.typicode.com/posts/1
Żądanie treści:
data: {title: „foo”, body: „bar”, userId: 1, Id: 1}
Odpowiedź: Po udanej aktualizacji zwraca 200 (lub 204, jeśli nie zwraca treści w treści) z PUT.
4) USUŃ:
DELETE jest dość łatwe do zrozumienia. Służy do usuwania zasobu identyfikowanego przez URI.
Po pomyślnym usunięciu zwróć status HTTP 200 (OK) wraz z treścią odpowiedzi, być może reprezentacją usuniętego elementu (często wymaga zbyt dużej przepustowości) lub opakowaną odpowiedzią (patrz Zwracane wartości poniżej). Albo to, albo zwróć status HTTP 204 (BRAK TREŚCI) bez treści odpowiedzi. Innymi słowy, zalecany jest status 204 bez treści lub odpowiedź w stylu JSEND i status HTTP 200.
Sprawdzanie za pomocą Fiddlera lub PostMan: Możemy użyć Fiddlera do sprawdzenia odpowiedzi. Otwórz Skrzypek i wybierz kartę Utwórz. Podaj czasownik i adres URL, jak pokazano poniżej, i kliknij przycisk Wykonaj, aby sprawdzić odpowiedź.
Czasownik: USUŃ
URL: http://jsonplaceholder.typicode.com/posts/1
Odpowiedź: Po pomyślnym usunięciu zwraca status HTTP 200 (OK) wraz z treścią odpowiedzi.
Przykład między PUT a PATCH
POŁOŻYĆ
Gdybym musiał zmienić imię, wyślij żądanie PUT o aktualizację:
{„first”: „Nazmul”, „last”: „hasan”} Tak więc tutaj, aby zaktualizować imię, musimy ponownie wysłać wszystkie parametry danych.
ŁATA:
Żądanie poprawki mówi, że wyślemy tylko dane, które musimy zmodyfikować, bez modyfikowania lub wpływania na inne części danych. Np .: jeśli musimy zaktualizować tylko imię, przekazujemy tylko imię.
Więcej informacji można znaleźć poniżej:
https://jsonplaceholder.typicode.com/
https://github.com/typicode/jsonplaceholder#how-to
PUT = zastąp CAŁE ZASOBY podaną nową reprezentacją
PATCH = zamień części zasobu źródłowego na podane wartości ORAZ | LUB inne części zasobu zostaną zaktualizowane, o ile nie dostarczyłeś (znaczniki czasu) ORAZ | LUB zaktualizowanie zasobu wpływa na inne zasoby (relacje)
Poniższa definicja pochodzi z prawdziwego przykładu.
Przykład Przegląd
Dla każdego danych klienta przechowujemy identyfikator, aby znaleźć dane klienta i odeślemy ten identyfikator do tego klienta w celach informacyjnych.
POCZTA
POŁOŻYĆ
ŁATA
Uwaga: W metodzie Put nie zgłaszamy wyjątku, jeśli nie znaleziono identyfikatora. Ale w metodzie Patch zgłaszamy wyjątek, jeśli identyfikator nie zostanie znaleziony.
Daj mi znać, jeśli masz jakieś pytania dotyczące powyższego.
GET / PUT jest idempotentny PATCH może być czasem idempotentny
Co jest idempotentne - oznacza to, że jeśli uruchomimy kwerendę wiele razy, nie powinna ona wpływać na jej wynik. (Ta sama wydajność. Załóżmy, że krowa jest w ciąży, a jeśli ponownie ją wyhodujemy, to nie może być wielokrotnie ciąża)
get
: -po prostu weź. Pobierz dane z serwera i pokaż je użytkownikowi
{
id:1
name:parth
email:x@x.com
}
post
: -utwórz nowy zasób w bazie danych. Oznacza to, że dodaje nowe dane. To nie jest idempotentne.
put
: -Utwórz nowy zasób, w przeciwnym razie dodaj do istniejącego. Idempotent, ponieważ za każdym razem będzie aktualizować ten sam zasób, a dane wyjściowe będą takie same. dawny. - Wstępne dane
{
id:1
name:parth
email:x@x.com
}
{
id:1
email:ppp@ppp.com
}
patch
więc teraz pojawiło się żądanie łatki PATCH może czasem być idempotentny
id:1
name:parth
email:x@x.com
}
nazwa łatki: w
{
id:1
name:w
email:x@x.com
}
Metoda HTTP POBIERZ tak POST nr PUT tak PATCH nr * OPCJE tak GŁOWA tak USUŃ tak
Zasoby: Idempotent - Co to jest Idempotencja?
Główna różnica między zleceniami PUT i PATCH :
Załóżmy, że mamy zasób, który zawiera imię i nazwisko osoby.
Jeśli chcemy zmienić imię, wysyłamy prośbę o wprowadzenie aktualizacji
{ "first": "Michael", "last": "Angelo" }
Tutaj, chociaż zmieniamy tylko imię, z prośbą PUT musimy wysłać oba parametry najpierw i na końcu.
Innymi słowy, obowiązkowe jest ponowne przesłanie wszystkich wartości, czyli pełnego ładunku.
Gdy wysyłamy żądanie PATCH, wysyłamy jednak tylko dane, które chcemy zaktualizować. Innymi słowy, wysyłamy tylko imię do aktualizacji, bez konieczności wysyłania nazwiska.
Całkiem logiczna różnica między PUT i PATCH wrt wysyłanie pełnych i częściowych danych odpowiednio do zamiany / aktualizacji. Jednak tylko kilka punktów jak poniżej
Pomyśl o tym w ten sposób ...
POST - utwórz
PUT - wymienić
PATCH - aktualizacja
GET - czytaj
USUŃ - usuń
Najprostsze objaśnienie:
POST - Utwórz NOWY rekord
PUT - Jeśli rekord istnieje, zaktualizuj inny, utwórz nowy rekord
PATCH - aktualizacja
GET - czytaj
USUŃ - usuń