REST (Representational State Transfer) é um estilo de arquit...
REST (Representational State Transfer) é um estilo de arquitetura para projetar sistemas computacionais distribuídos. Analise as afirmativas a seguir sobre o estilo arquitetônico REST:
I. As interações REST são stateless, ou seja, cada requisição contém todas as informações necessárias para um conector compreendê-la, independentemente de requisições anteriores.
II. Os métodos PUT e POST do protocolo HTTP são considerados como idempotentes na arquitetura REST.
III. Recursos são unicamente identificados por meio de URIs (Uniform Resource Identifier).
Está correto o que se afirma em:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
O item I está correto, as iterações REST são stateless, não guardam valor de sessão.
O item II está errado, O método PUT é idempotente, enquanto o método POST não.
O item III está correto, a identificação primária dos recursos na arquitetura REST é a URI.
Fonte : https://restfulapi.net/rest-put-vs-post/
Portanto a alternativa correta é a letra D
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Idempotência:
É a propriedade que algumas operações têm de poder ser aplicadas várias vezes sem que o valor do resultado se altere após a aplicação inicial. GET, PUT, DELETE, HEAD e OPTIONS.
POST não possui essa caracteristicas
somente I e III;
"Por que o POST não é idempotente? Vamos lá, a principal funcionalidade de uma chamada POST é criar um recurso, então a cada requisição que se realizar, um recurso será criado e assim alterando o estado da aplicação e não mantendo o atual.
O PUT é um caso legal, ele altera o estado de uma aplicação certo? Agora imagina o seguinte, tenho o mesmo endpoint que citei acima, porém, com o verbo PUT, se eu alterar o campo city de “Araraquara” para “São Paulo” e enviar uma vez, será alterado meu objeto e o estado da aplicação, com um status 200, porém, se o mesmo payload for enviado novamente, a resposta será igual a da primeira chamada, com o mesmo status e body"
.
https://medium.com/@lucasschwenke/idempot%C3%AAncia-uma-boa-pr%C3%A1tica-a-se-utilizar-em-servi%C3%A7os-rest-633c38f4d7c0
Leiam o comentário do Leandro Henrrique, Plinio e do Professor. Caso ainda não entenda, leia este aqui, pois tentarei simplificar. Vamos lá...
Relembrando. O que é o Rest?
- R: É uma sigla que traduzido quer dizer: transferência de estado representacional. Em outras palavras, é uma arquitetura usada para transferência. Ele não armazena estado nas mudanças (condição atual sobre o processamento da requisição) - stateless. Ademais, posso identificar tudo no endereço completo do site (URIs).
Até aqui já identificamos que as letras I e III estão corretas. Vejamos o erro da II e dizer de forma simples o que é a idempotência.
- Quando eu lido com transferência em Rest, tenho que determinar as ações a serem feitas e para isso são usados os métodos. A questão está abordando dois métodos, a saber: PUT e o POST.
- O PUT sobrescreve (idempotente). Posso enviar quantas requisições que eu quiser, que é visto como apenas uma modificação.
- O POST não sobrescreve (não idempotente). Cada requisição enviada exigirá criar novos recursos com novas URIs
GABARITO D
Referências:
- https://restfulapi.net/rest-put-vs-post/
- https://www.totvs.com/blog/developers/rest/
- https://woliveiras.com.br/posts/url-uri-qual-diferenca/
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo