Qual è la differenza tra i metodi PUT, POST e PATCH nel protocollo HTTP?
Qual è la differenza tra i metodi PUT, POST e PATCH nel protocollo HTTP?
Risposte:
Differenza tra PUT, POST, GET, DELETE e PATCH IN HTTP Verbi:
I verbi HTTP più comunemente usati POST, GET, PUT, DELETE sono simili alle operazioni CRUD (Crea, Leggi, Aggiorna ed Elimina) nel database. Specifichiamo questi verbi HTTP nella capitale caso. Quindi, il seguito è il confronto tra di loro.
PATCH: invia una modifica parziale a una risorsa. Se è necessario aggiornare solo un campo per la risorsa, è possibile utilizzare il metodo PATCH.
Nota:
poiché POST, PUT, DELETE modificano il contenuto, i test con Fiddler per l'URL sottostante imitano solo gli aggiornamenti. In realtà non elimina o modifica. Possiamo solo vedere i codici di stato per verificare se si verificano inserimenti, aggiornamenti, eliminazioni.
URL: http://jsonplaceholder.typicode.com/posts/
1) OTTIENI:
GET è il tipo più semplice di metodo di richiesta HTTP; quello utilizzato dai browser ogni volta che si fa clic su un collegamento o si digita un URL nella barra degli indirizzi. Indica al server di trasmettere al client i dati identificati dall'URL. I dati non devono mai essere modificati sul lato server a seguito di una richiesta GET. In questo senso, una richiesta GET è di sola lettura.
Verifica con Fiddler o PostMan: possiamo usare Fiddler per verificare la risposta. Apri Fiddler e seleziona la scheda Scrivi. Specifica il verbo e l'URL come mostrato di seguito e fai clic su Esegui per verificare la risposta.
Verbo: GET
url: http://jsonplaceholder.typicode.com/posts/
Risposta: otterrai la risposta come:
"userId": 1, "id": 1, "title": "sunt aut ...", "body": "quia et suscipit ..."
Nel percorso "felice" (o senza errori), GET restituisce una rappresentazione in XML o JSON e un codice di risposta HTTP di 200 (OK). In un caso di errore, molto spesso restituisce un 404 (NON TROVATO) o 400 (BAD REQUEST).
2) POST:
Il verbo POST viene utilizzato principalmente per creare nuove risorse. In particolare, viene utilizzato per creare risorse subordinate. Cioè, subordinato ad un'altra risorsa (ad esempio genitore).
Al termine della creazione, restituire lo stato HTTP 201, restituendo un'intestazione di posizione con un collegamento alla risorsa appena creata con lo stato HTTP 201.
Verifica con Fiddler o PostMan: possiamo usare Fiddler per verificare la risposta. Apri Fiddler e seleziona la scheda Scrivi. Specifica il verbo e l'URL come mostrato di seguito e fai clic su Esegui per verificare la risposta.
Verbo: POST
url: http://jsonplaceholder.typicode.com/posts/
Ente richiesta:
data: {title: 'foo', body: 'bar', userId: 1000, Id: 1000}
Risposta: riceverai il codice di risposta come 201.
Se vogliamo controllare il record inserito con Id = 1000, modifica il verbo in Get e usa lo stesso URL e fai clic su Esegui.
Come detto in precedenza, l'URL di cui sopra consente solo letture (GET), non possiamo leggere i dati aggiornati in tempo reale.
3) PUT:
Il PUT viene spesso utilizzato per le funzionalità di aggiornamento , inserendo un URI di risorsa noto con il corpo della richiesta contenente la rappresentazione appena aggiornata della risorsa originale.
Verifica con Fiddler o PostMan: possiamo usare Fiddler per verificare la risposta. Apri Fiddler e seleziona la scheda Scrivi. Specifica il verbo e l'URL come mostrato di seguito e fai clic su Esegui per verificare la risposta.
Verbo: PUT
url: http://jsonplaceholder.typicode.com/posts/1
Ente richiesta:
data: {title: 'foo', body: 'bar', userId: 1, Id: 1}
Risposta: Se l' aggiornamento ha esito positivo, restituisce 200 (o 204 se non restituisce alcun contenuto nel corpo) da un PUT.
4) ELIMINA:
ELIMINA è abbastanza facile da capire. Viene utilizzato per eliminare una risorsa identificata da un URI.
In caso di cancellazione riuscita, restituire lo stato HTTP 200 (OK) insieme a un corpo di risposta, forse la rappresentazione dell'elemento eliminato (spesso richiede troppa larghezza di banda) o una risposta a capo (vedere Valori di ritorno di seguito). O quello o restituisce lo stato HTTP 204 (NESSUN CONTENUTO) senza corpo di risposta. In altre parole, uno stato 204 senza corpo o la risposta in stile JSEND e lo stato HTTP 200 sono le risposte consigliate.
Verifica con Fiddler o PostMan: possiamo usare Fiddler per verificare la risposta. Apri Fiddler e seleziona la scheda Scrivi. Specifica il verbo e l'URL come mostrato di seguito e fai clic su Esegui per verificare la risposta.
Verbo: ELIMINA
url: http://jsonplaceholder.typicode.com/posts/1
Risposta: in caso di cancellazione riuscita restituisce lo stato HTTP 200 (OK) insieme a un corpo di risposta.
Esempio tra PUT e PATCH
METTERE
Se dovessi cambiare il mio nome, invia la richiesta PUT per l'aggiornamento:
{"first": "Nazmul", "last": "hasan"} Quindi, qui per aggiornare il nome dobbiamo inviare nuovamente tutti i parametri dei dati.
PATCH:
La richiesta di patch afferma che invieremo solo i dati che è necessario modificare senza modificare o rendere effettive altre parti dei dati. Es .: se dobbiamo aggiornare solo il nome, passiamo solo il nome.
Per ulteriori informazioni, consultare i collegamenti seguenti:
https://jsonplaceholder.typicode.com/
https://github.com/typicode/jsonplaceholder#how-to
Qual è la differenza principale tra la richiesta PATCH e PUT?
PUT = sostituire l'INTERO RISORSE con la nuova rappresentazione fornita
PATCH = sostituisci parti della risorsa di origine con i valori forniti AND | O altre parti della risorsa vengono aggiornate che non hai fornito (timestamp) AND | OR aggiornando gli effetti della risorsa altre risorse (relazioni)
La definizione che segue è dall'esempio del mondo reale.
Panoramica degli esempi
Per ogni dato del cliente, stiamo memorizzando un identificatore per trovare tali dati del cliente e rispediremo tale identificativo a quel cliente per riferimento.
INVIARE
METTERE
PATCH
Nota: nel metodo Put , non generiamo un'eccezione se non viene trovato un identificatore. Ma nel metodo Patch , stiamo generando un'eccezione se l'identificatore non viene trovato.
Fammi sapere se hai domande su quanto sopra.
GET / PUT è idempotente PATCH può essere talvolta idempotente
Cosa è idempotente - Significa che se la query viene lanciata più volte non dovrebbe influire sul risultato di essa (stesso risultato. Supponiamo che una mucca sia incinta e se la riproduciamo di nuovo non può essere in gravidanza più volte)
get
: -get semplice. Ottieni i dati dal server e mostrali all'utente
{
id:1
name:parth
email:x@x.com
}
post
: -creare una nuova risorsa nel database. Significa che aggiunge nuovi dati. Non è idempotente.
put
: -Crea nuova risorsa altrimenti aggiungi a esistente. Idempotente perché aggiornerà sempre la stessa risorsa e l'output sarà lo stesso. ex. - dati iniziali
{
id:1
name:parth
email:x@x.com
}
{
id:1
email:ppp@ppp.com
}
patch
così ora è arrivata la richiesta di patch PATCH può essere talvolta idempotente
id:1
name:parth
email:x@x.com
}
nome patch: w
{
id:1
name:w
email:x@x.com
}
Metodo HTTP OTTIENI sì POST no Metti sì PATCH no * OPZIONI sì TESTA sì ELIMINA si
Risorse: idempotente - Che cos'è l'idempotenza?
Differenza principale tra richieste PUT e PATCH :
Supponiamo di avere una risorsa che contiene il nome e il cognome di una persona.
Se vogliamo cambiare il nome, inviamo una richiesta put per l'aggiornamento
{ "first": "Michael", "last": "Angelo" }
Qui, sebbene stiamo solo cambiando il nome, con la richiesta PUT dobbiamo inviare sia i parametri che il cognome.
In altre parole, è obbligatorio inviare nuovamente tutti i valori, l'intero payload.
Quando inviamo una richiesta PATCH, tuttavia, inviamo solo i dati che vogliamo aggiornare. In altre parole, inviamo solo il nome per l'aggiornamento, non è necessario inviare il cognome.
Abbastanza logica la differenza tra PUT e PATCH che inviano rispettivamente dati completi e parziali per la sostituzione / aggiornamento. Tuttavia, solo un paio di punti come di seguito
Pensare in questo modo...
POST: crea
PUT - sostituire
PATCH - aggiornamento
Essere letto
ELIMINA - elimina
Spiegazione più semplice:
POST - Crea NUOVO record
PUT - Se il record esiste, aggiorna altro, crea un nuovo record
PATCH - aggiornamento
Essere letto
ELIMINA - elimina