← Questões de Programação

Programação · FGV · 2024

Questão comentada de Programação

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:

Gabarito: D

No Spring Boot, quando você recebe dados enviados no corpo da requisição em formato JSON, o ponto-chave é dizer ao framework: “pegue o conteúdo do body e converta para o objeto Java”. É exatamente isso que a anotação @RequestBody faz em um parâmetro de método, especialmente em endpoints de inclusão, atualização e consumo de APIs REST. Na prática, o controlador recebe a requisição, o Spring usa seus conversores de mensagem para ler o JSON e preencher a entidade informada. Então, se o método de inclusão recebe uma entidade como parâmetro, a anotação correta é a que mapeia o corpo da requisição para esse objeto. As outras opções confundem mapeamento de rota com leitura de dados. @PostMapping define que o método responde a requisições POST, @GetMapping responde a GET, e @RestController identifica a classe como controlador REST. Nenhuma delas faz o trabalho de transformar o JSON enviado pelo cliente em um objeto Java. Em prova, guarde a lógica: rota e verbo HTTP são uma coisa; conteúdo enviado no corpo da requisição é outra. Se o enunciado fala em dados no formato JSON chegando para um parâmetro de método, a anotação clássica do Spring é @RequestBody.

Continue treinando

Questões relacionadas