Questão nº 63
Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 63)
Breno está criando um serviço REST, que será disponibilizado por meio de um aplicativo Spring Boot. Como ele já conhece o padrão do REST, criou um método de inclusão no controlador, tendo como parâmetro uma entidade do tipo gerenciado pelo serviço.
Para que o parâmetro receba corretamente os dados fornecidos pela requisição, no formato JSON, Breno irá utilizar nesse parâmetro a anotação:
- APostMapping;
- BRestController;
- CGetMapping;
- DRequestBody; (alternativa correta)
- EPathParam.
Resposta comentada
Gabarito Alternativa D
Quando um cliente (como um navegador ou aplicativo) envia dados para o seu serviço web (geralmente em formato JSON), o Spring precisa de uma instrução para pegar esses dados do "corpo" da requisição HTTP e transformá-los em um objeto Java que seu método possa usar. A anotação RequestBody faz exatamente isso.
- (A) Incorreta:
PostMappingé uma anotação de nível de método que mapeia requisições HTTP do tipo POST para aquele método. Embora a inclusão de um recurso geralmente use POST,PostMappingnão é responsável por extrair os dados do corpo da requisição para um parâmetro do método. Armadilha: É tentador porque "inclusão" remete a POST, mas a pergunta é sobre como o parâmetro recebe os dados, não sobre o tipo de requisição. - (B) Incorreta:
RestControlleré uma anotação de nível de classe que combina@Controllere@ResponseBody, indicando que a classe é um controlador REST e que os valores de retorno dos métodos devem ser serializados diretamente para o corpo da resposta HTTP. Não é usada em parâmetros de método. - (C) Incorreta:
GetMappingé uma anotação de nível de método que mapeia requisições HTTP do tipo GET para aquele método. Requisições GET geralmente não possuem corpo de requisição para enviar dados para inclusão. - (D) Correta:
RequestBodyé a anotação utilizada em um parâmetro de método para indicar que o corpo da requisição HTTP (que conterá os dados JSON) deve ser lido e convertido para o tipo do parâmetro. - (E) Incorreta:
PathParam(ouPathVariableno Spring) é usado para extrair valores de variáveis presentes na própria URL da requisição (ex:/recursos/{id}). Não é usado para ler dados do corpo da requisição.
Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.