Luana criou um Web Service do tipo RESTful e disponibilizou um conjunto de serviços relacionados ao cadastro de pessoas físicas no sistema de sua empresa, tendo como referência o servidor local, no endereço http://s01. Ao acessar o endereço http://s01/pessoa/1200, pelo método PUT do protocolo HTTP, um sistema cliente:
- A)consulta os dados da pessoa identificada pelo código 1200, fornecido na URL;
Errada, porque consulta de dados em REST normalmente é feita com GET, não com PUT.
- B)solicita a alteração dos dados da pessoa identificada pelo código 1200, fornecido na URL;
Certa, porque PUT é o verbo HTTP associado à atualização/substituição de um recurso identificado na URL.
- C)acessa o descritor de serviços do Web Service, especificando a versão 1.2.00;
Errada, porque o enunciado trata de um recurso REST no HTTP, não de acesso a descritor de serviços nem de versão 1.2.00.
- D)solicita a exclusão dos dados da pessoa identificada pelo código 1200, fornecido na URL;
Errada, porque exclusão de recurso é feita com DELETE, não com PUT.
- E)inclui os dados de uma pessoa usando o identificador 1200, fornecido na URL.
Errada, porque inclusão/criação de recurso costuma ser associada a POST e, em certos casos, a PUT para criar em URI conhecida, mas o texto fala de alteração de um recurso já existente.
Gabarito: B
Em REST, a URL aponta para o recurso e o verbo HTTP indica a ação que voce quer fazer sobre ele. Aqui, /pessoa/1200 identifica a pessoa de código 1200, e o método PUT é usado para atualizar ou substituir os dados desse recurso no servidor. Ou seja, não é um pedido de consulta, nem de exclusão, nem de criação pura e simples: é uma solicitação de alteração do recurso já identificado. Pense assim: a URL diz "quem" e o verbo diz "o que fazer". No caso do PUT, a ideia clássica do HTTP é enviar uma representação do recurso para atualizar aquele endereço específico. Em REST, isso se encaixa no principio de uso dos verbos do protocolo para semântica da operação, algo bem cobrado em prova de redes e web services. Por isso o gabarito é a letra B. O cliente, ao chamar PUT em http://s01/pessoa/1200, está pedindo a alteração dos dados da pessoa 1200. Se a banca quisesse consulta, tenderia a usar GET; se fosse exclusão, DELETE; e se fosse inclusão, normalmente apareceria POST ou PUT em outro contexto de criação com URI definida pelo cliente, mas o enunciado aqui aponta para atualização de um recurso já existente.