Qual é a diferença entre os métodos PUT, POST e PATCH no protocolo HTTP?
Qual é a diferença entre os métodos PUT, POST e PATCH no protocolo HTTP?
Respostas:
Diferença entre os verbos PUT, POST, GET, DELETE e PATCH IN HTTP:
Os verbos HTTP mais usados POST, GET, PUT, DELETE são semelhantes às operações CRUD (Criar, Ler, Atualizar e Excluir) no banco de dados. Nós especificar esses verbos HTTP no capital de caso. Então, a seguir está a comparação entre eles.
PATCH: Envia uma modificação parcial para um recurso. Se você precisar atualizar apenas um campo para o recurso, convém usar o método PATCH.
Nota:
Como POST, PUT, DELETE modifica o conteúdo, os testes com o Fiddler para o URL abaixo apenas imitam as atualizações. Na verdade, ele não exclui ou modifica. Podemos apenas ver os códigos de status para verificar se inserções, atualizações, exclusões ocorrem.
URL: http://jsonplaceholder.typicode.com/posts/
1) GET:
GET é o tipo mais simples de método de solicitação HTTP; aquele que os navegadores usam sempre que você clica em um link ou digita um URL na barra de endereços. Instrui o servidor a transmitir os dados identificados pela URL para o cliente. Os dados nunca devem ser modificados no lado do servidor como resultado de uma solicitação GET. Nesse sentido, uma solicitação GET é somente leitura.
Verificando com o Fiddler ou o PostMan: podemos usar o Fiddler para verificar a resposta. Abra o Fiddler e selecione a guia Compor. Especifique o verbo e o URL, como mostrado abaixo, e clique em Executar para verificar a resposta.
Verbo: GET
url: http://jsonplaceholder.typicode.com/posts/
Resposta: Você receberá a resposta como:
"userId": 1, "id": 1, "title": "sunt aut ...", "body": "quia et suscipit ..."
No caminho "feliz" (ou sem erro), GET retorna uma representação em XML ou JSON e um código de resposta HTTP 200 (OK). Em um caso de erro, geralmente retorna 404 (NÃO ENCONTRADO) ou 400 (PEDIDO MAU).
2) POST:
O verbo POST é utilizado principalmente para criar novos recursos. Em particular, é usado para criar recursos subordinados. Ou seja, subordinado a algum outro recurso (por exemplo, pai).
Na criação bem-sucedida, retorne o status HTTP 201, retornando um cabeçalho de Localização com um link para o recurso recém-criado com o status HTTP 201.
Verificando com o Fiddler ou o PostMan: podemos usar o Fiddler para verificar a resposta. Abra o Fiddler e selecione a guia Compor. Especifique o verbo e o URL, como mostrado abaixo, e clique em Executar para verificar a resposta.
Verbo: POST
url: http://jsonplaceholder.typicode.com/posts/
Organismo de solicitação:
data: {title: 'foo', body: 'bar', userId: 1000, Id: 1000}
Resposta: você receberia o código de resposta como 201.
Se quisermos verificar o registro inserido com Id = 1000, altere o verbo para Get e use o mesmo URL e clique em Execute.
Como dito anteriormente, o URL acima permite apenas leituras (GET), não podemos ler os dados atualizados em real.
3) COLOCAR:
O PUT é utilizado com mais frequência para recursos de atualização , colocando-o em um URI de recurso conhecido com o corpo da solicitação que contém a representação recém-atualizada do recurso original.
Verificando com o Fiddler ou o PostMan: podemos usar o Fiddler para verificar a resposta. Abra o Fiddler e selecione a guia Compor. Especifique o verbo e o URL, como mostrado abaixo, e clique em Executar para verificar a resposta.
Verbo: PUT
url: http://jsonplaceholder.typicode.com/posts/1
Organismo de solicitação:
data: {title: 'foo', body: 'bar', userId: 1, Id: 1}
Resposta: Na atualização bem-sucedida, ele retorna 200 (ou 204, se não retornar nenhum conteúdo no corpo) de uma PUT.
4) EXCLUIR:
DELETE é muito fácil de entender. É usado para excluir um recurso identificado por um URI.
Na exclusão bem-sucedida, retorne o status HTTP 200 (OK) junto com um corpo de resposta, talvez a representação do item excluído (geralmente exige muita largura de banda) ou uma resposta agrupada (consulte Valores de retorno abaixo). Ou retorne o status HTTP 204 (SEM CONTEÚDO) sem corpo de resposta. Em outras palavras, um status 204 sem corpo ou a resposta no estilo JSEND e o status HTTP 200 são as respostas recomendadas.
Verificando com o Fiddler ou o PostMan: podemos usar o Fiddler para verificar a resposta. Abra o Fiddler e selecione a guia Compor. Especifique o verbo e o URL, como mostrado abaixo, e clique em Executar para verificar a resposta.
Verbo: DELETE
url: http://jsonplaceholder.typicode.com/posts/1
Resposta: Na exclusão bem-sucedida, ele retorna o status HTTP 200 (OK) junto com um corpo de resposta.
Exemplo entre PUT e PATCH
COLOCAR
Se eu tivesse que mudar meu primeiro nome, envie uma solicitação PUT para atualização:
{"first": "Nazmul", "last": "hasan"} Então, aqui, para atualizar o primeiro nome, precisamos enviar todos os parâmetros dos dados novamente.
FRAGMENTO:
A solicitação de patch diz que enviaríamos apenas os dados que precisamos modificar sem modificar ou afetar outras partes dos dados. Ex: se precisarmos atualizar apenas o primeiro nome, passamos apenas o primeiro nome.
Consulte os links abaixo para obter mais informações:
https://jsonplaceholder.typicode.com/
https://github.com/typicode/jsonplaceholder#how-to
Qual é a principal diferença entre a solicitação PATCH e PUT?
PUT = substituir o RECURSO INTEIRO pela nova representação fornecida
PATCH = substituir partes do recurso de origem pelos valores fornecidos AND | OR outras partes do recurso são atualizadas que você não forneceu (timestamps) AND | OR atualizar o recurso afeta outros recursos (relacionamentos)
A definição abaixo é do exemplo do mundo real.
Visão geral do exemplo
Para todos os dados do cliente, estamos armazenando um identificador para encontrar esses dados e enviaremos esse identificador de volta para esse cliente para referência.
POSTAR
COLOCAR
FRAGMENTO
Nota: No método Put , não lançamos uma exceção se um identificador não for encontrado. Mas no método Patch , estamos lançando uma exceção se o identificador não for encontrado.
Deixe-me saber se você tiver alguma dúvida sobre o acima.
GET / PUT é idempotente Às vezes, PATCH pode ser idempotente
O que é idempotente - significa que, se dispararmos a consulta várias vezes, ela não deve afetar o resultado dela. (Mesma saída. Suponha que uma vaca esteja grávida e se a reproduzirmos novamente, ela não poderá engravidar várias vezes)
get
: -obter simples. Obtenha os dados do servidor e mostre-os ao usuário
{
id:1
name:parth
email:x@x.com
}
post
: -crie um novo recurso no banco de dados. Isso significa que ele adiciona novos dados. Não é idempotente.
put
: -Crie um novo recurso, caso contrário, adicione ao existente. Idempotente porque atualizará o mesmo recurso toda vez e a saída será a mesma. ex. - Dados iniciais
{
id:1
name:parth
email:x@x.com
}
{
id:1
email:ppp@ppp.com
}
patch
agora veio o pedido de patch PATCH às vezes pode ser idempotente
id:1
name:parth
email:x@x.com
}
nome do patch: w
{
id:1
name:w
email:x@x.com
}
Método HTTP OBTER sim POST no PUT sim PATCH no * OPÇÕES sim CABEÇA sim EXCLUIR sim
Recursos: Idempotent - O que é Idempotency?
Principal diferença entre PUT e PATCH solicitações :
Suponha que tenhamos um recurso que contém o nome e o sobrenome de uma pessoa.
Se quisermos mudar o primeiro nome, enviaremos uma solicitação de atualização
{ "first": "Michael", "last": "Angelo" }
Aqui, embora estejamos apenas alterando o primeiro nome, com a solicitação PUT, temos que enviar os dois parâmetros, primeiro e último.
Em outras palavras, é obrigatório enviar todos os valores novamente, a carga útil completa.
Quando enviamos uma solicitação PATCH, no entanto, enviamos apenas os dados que queremos atualizar. Em outras palavras, enviamos apenas o primeiro nome para atualização, sem a necessidade de enviar o sobrenome.
É bastante lógica a diferença entre PUT e PATCH wrt enviando dados completos e parciais para substituição / atualização, respectivamente. No entanto, apenas alguns pontos, como abaixo
Pense desta maneira ...
POST - criar
PUT - substituir
PATCH - atualização
GET - ler
DELETE - excluir
Explicação mais simples:
POST - Criar novo registro
PUT - Se o registro existir, atualize mais, crie um novo registro
PATCH - atualização
GET - ler
DELETE - excluir