SóProvas


ID
2481985
Banca
FGV
Órgão
IBGE
Ano
2017
Provas
Disciplina
Sistemas Operacionais
Assuntos

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:

Alternativas
Comentários
  • 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

  • Prezados,

    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


  • 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: 

    1. https://restfulapi.net/rest-put-vs-post/
    2. https://www.totvs.com/blog/developers/rest/
    3. https://woliveiras.com.br/posts/url-uri-qual-diferenca/