PUT vs POST – Diferença entre eles

Principais diferenças entre PUT e POST

  • O método PUT é chamado quando você precisa modificar um único recurso, enquanto o método POST é chamado quando você precisa adicionar um recurso filho.
  • As respostas do método POST podem ser armazenadas em cache, mas você não pode armazenar em cache as respostas do método PUT.
  • Você pode usar a consulta UPDATE no PUT, enquanto pode usar a consulta create no POST.
  • No método PUT, o cliente decide qual recurso URI deve ter, e no método POST, o servidor decide qual recurso URI deve ter.
  • PUT funciona como específico, enquanto POST funciona como abstrato.
  • Se você enviar a mesma solicitação PUT várias vezes, o resultado permanecerá o mesmo, mas se você enviar a mesma solicitação POST várias vezes, receberá resultados diferentes.
  • O método PUT é idempotente, enquanto o método POST não é idempotente.
COLOCAR vs POSTAR
COLOCAR vs POSTAR

O que é o método PUT?

O método PUT é usado para atualizar os recursos disponíveis no servidor. Normalmente, ele substitui tudo o que existe no URL de destino por outra coisa. Você pode usá-lo para criar um novo recurso ou substituir um existente. PUT solicita que a entidade incluída seja armazenada no URI solicitado fornecido (Uniform Resource Identifier).

O que é o método POST?

POST é um método suportado por HTTP e

descreve que um servidor web aceita os dados incluídos no corpo da mensagem, que é solicitada. POST é frequentemente usado pela World Wide Web para enviar dados gerados pelo usuário para o servidor web ou quando você carrega um arquivo.

Diferenças entre PUT e POST em APIs REST

Aqui está a diferença importante entre os métodos PUT e POST:

PUT POST
Este método é idempotente. Este método não é idempotente.
O método PUT é chamado quando você precisa modificar um único recurso, que já faz parte da coleção de recursos. O método POST é chamado quando você precisa adicionar um recurso filho na coleção de recursos.
RFC-2616 descreve que o método PUT envia uma solicitação para uma entidade incluída armazenada no URI de solicitação fornecido. Este método solicita que o servidor aceite a entidade incluída na solicitação.
A sintaxe do método PUT é PUT /questions/{question-id} A sintaxe do método POST é POST /questions
Você não pode armazenar em cache as respostas do método PUT. A resposta do método POST pode ser armazenada em cache.
PUT /vi/juice/orders/1234 indica que você está atualizando um recurso identificado por “1234”. POST /vi/juice/orders indica que você está criando um novo recurso e retorna um identificador para descrever o recurso.
Se você enviar a mesma solicitação várias vezes, o resultado permanecerá o mesmo. Se você enviar a mesma solicitação POST mais de uma vez, receberá resultados diferentes.
PUT funciona como específico. POST funciona como abstrato.
Usamos a consulta UPDATE em PUT. Usamos criar consulta no POST.
No método PUT, o cliente decide qual recurso URI deve ter. No método POST, o servidor decide qual recurso URI deve ter.

Exemplo de PUT

Aqui está o exemplo de servidor web de um método PUT:

HTTP PUT http://www.google.com/users/234

HTTP PUT http://www.google.com/users/234/accounts/567

SOLICITAÇÃO

PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 20

<p>New File</p>

Respostas

Se o recurso de destino tiver representação atual e for modificado com o estado da representação incluída, o servidor deverá enviar duas respostas. O primeiro código de resposta é 200 (OK) e o segundo código de resposta é 204 (Sem conteúdo).

Caso o recurso alvo não possua representação, o servidor deverá informar o usuário enviando uma resposta de código 201 (Criado).

 HTTP/1.1 201 Created
Content-Location: /new.html

Exemplo de POST

Aqui está um exemplo do método POST:

POST HTTP http://www.google.com/users

POST HTTP http://www.google.com/users/234/accounts

Um formulário usando o tipo de conteúdo padrão application/x-www-form-urlencoded:

POST /test HTTP/1.1
Host: abc.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 40

field1=value1&field2=value2

Testando uma API com solicitações PUT

Aqui estão as etapas para testar a API com solicitações PUT:

Testando uma API com solicitações PUT
Testando uma API com solicitações PUT

Passo 1) Atualize recursos com solicitação PUT.

Passo 2) Use o método GET para recurso. Se a solicitação PUT for bem-sucedida, você receberá novos dados. Este método falhará se os dados fornecidos na solicitação forem inválidos. Portanto, não atualizará nada.

Testando uma API com solicitações POST

Aqui estão as etapas para testar a API com solicitações POST:

Testando uma API com solicitações POST

Testando uma API com solicitações POST

Passo 1) Crie um recurso usando a solicitação POST e certifique-se de que ele retorne o código de status 200.

Passo 2) Faça uma solicitação GET para esse recurso e salve os dados no formato correto.

Passo 3) Você deve adicionar testes que garantam que as solicitações POST falhem com dados incorretos.

Vantagens do método PUT

Aqui estão os prós/benefícios de usar o método PUT:

  • Ajuda você a armazenar a entidade fornecida no URI fornecido
  • Se a entidade fornecida já existir, você poderá executar a operação de atualização ou criar com esse URI.
  • Você pode criar um recurso quantas vezes quiser.
  • Criar um recurso com o método PUT é muito fácil.
  • Você não precisa verificar se o usuário clicou no botão enviar várias vezes ou não.
  • Ele pode identificar a entidade incluída na solicitação.

Vantagens do método POST

Aqui estão os prós/benefícios de usar o método POST:

  • Este método ajuda você a determinar o URI do recurso.
  • Especificar um novo cabeçalho de localização de recurso é muito fácil usando o cabeçalho de localização.
  • Você pode enviar uma solicitação para aceitar a entidade como um novo subordinado do recurso, que é identificado pelo URI.
  • Você pode enviar dados gerados pelo usuário para o servidor web.
  • É muito útil quando você não conhece a URL para manter algum recurso.
  • Use POST quando precisar do servidor, que controla a geração de URL de seus recursos.
  • POST é um método seguro pois suas solicitações não permanecem no histórico do navegador.
  • Você pode transmitir facilmente uma grande quantidade de dados usando postagem.
  • Você pode manter os dados privados.
  • Este método pode ser usado para enviar dados binários e também ASCII.