RESTful: PUT x POST

29/09/2016

0

bom dia a todos

Dentro do contexto REST, qual a diferenca entre PUT e POST? obrigado!
Gladstone Matos

Gladstone Matos

Responder

Post mais votado

29/09/2016

Por convenção, o POST é utilizado para a atualização de um dado já existente, enquanto o PUT é utilizado para inserção de um novo dado.
Nesse cenário, no POST é necessário informar o ID do dado que será alterado, enquanto no PUT esse id não é enviado pois ainda não existe no sistema.

Claudemir Brum

Claudemir Brum
Responder

Mais Posts

29/09/2016

Gladstone Matos

show Claudemir, muito obrigado!
Responder

29/09/2016

Gladstone Matos

Segue abaixo duas literaturas para ajudar nessa questão:

Site oficial do Java:
https://docs.oracle.com/cd/E19798-01/821-1841/giepu/index.html

Trecho:
"Uniform interface: Resources are manipulated using a fixed set of four create, read, update, delete operations: PUT, GET, POST, and DELETE. PUT creates a new resource, which can be then deleted by using DELETE. GET retrieves the current state of a resource in some representation. POST transfers a new state onto a resource."

Site oficial da Microsoft:
https://msdn.microsoft.com/en-us/library/dd203052.aspx

Trecho:
"PUT: Create or update a resource with the supplied representation;
POST: Submits data to be processed by the identified resource"


https://docs.oracle.com/cd/E19798-01/821-1841/gipys/index.html

Trecho:
"Both @PUT and @POST can be used to create or update a resource."



IETF:

https://tools.ietf.org/html/rfc7231#section-4.3.3

Trechos:
"4.3.3. POST: Creating a new resource that has yet to be identified by the
origin server; and Appending data to a resource's existing representation(s)."

"4.3.4. PUT: The PUT method requests that the state of the target resource be
created or replaced with the state defined by the representation
enclosed in the request message"

abracos
hoje
Responder

30/09/2016

Fernando Gaspar

Boa pergunta Gladstone,
o pessoal sempre fica na duvida sobre essa questão.

Obrigado pelo esclarecimento Claudemir!
Responder

30/09/2016

Gladstone Matos

aprofundando os estudos, segue o que encontrei:

MSDN:

"In short, GET, PUT, and DELETE provide basic CRUD operations (create, retrieve, update, and delete) for the Web. "

Ou seja, no ponto de vista da MSDN, apenas estes tres verbos sao suficientes para prover um CRUD basico.


encontrei tambem um trecho interessante no java.net:

https://docs.oracle.com/cd/E19798-01/821-1841/gipys/index.html

"A common application pattern is to use POST to create a resource "

Ou seja, apesar de não ter sido definido originalmente como padrao para criacao de novos recursos, o uso de POST para inserir é considerado pelo java.net como um 'padrão comum';
Responder

03/10/2016

Gladstone Matos

Publicamos um artigo no site da DevMedia com um resumo dessa questão:

RESTful verbos HTTP
Responder

03/10/2016

Lucas Campos

Por convenção, o POST é utilizado para a atualização de um dado já existente, enquanto o PUT é utilizado para inserção de um novo dado.
Nesse cenário, no POST é necessário informar o ID do dado que será alterado, enquanto no PUT esse id não é enviado pois ainda não existe no sistema.


Não seria o inverso?
Responder

03/10/2016

Gladstone Matos

É verdade Lucas! =:-O
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar