Breno está criando um serviço REST, que será disponibilizado...
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 comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: D - RequestBody
Vamos entender porque a alternativa correta é a D - RequestBody e analisar as outras alternativas.
Quando Breno está criando um serviço REST utilizando Spring Boot, ele precisa garantir que os dados enviados na requisição HTTP sejam corretamente convertidos e mapeados para o parâmetro do método do controlador. Para isso, ele utiliza a anotação @RequestBody
. Essa anotação informa ao Spring que ele deve converter o corpo da requisição JSON em um objeto Java. Dessa forma, os dados fornecidos pela requisição podem ser manipulados no serviço REST.
Análise das Alternativas:
A - PostMapping:
@PostMapping é uma anotação usada para mapear solicitações HTTP POST para métodos de manipulador específicos. Embora seja importante para definir o endpoint que manipula as requisições POST, não é responsável por converter o JSON do corpo da requisição em um objeto Java. Portanto, não é a anotação correta para essa situação.
B - RestController:
@RestController é uma anotação que combina @Controller e @ResponseBody. Ela é usada para denotar que a classe é um controlador REST, onde cada método retorna dados diretamente no corpo da resposta. No entanto, essa anotação não é usada para converter o JSON da requisição para um objeto Java. Portanto, não atende ao requisito de receber dados JSON no parâmetro do método.
C - GetMapping:
@GetMapping é usada para mapear solicitações HTTP GET para métodos de manipulador específicos. Como estamos tratando de uma inclusão de dados, que geralmente é feita via POST, essa anotação não é apropriada para o cenário descrito na questão. Além disso, assim como @PostMapping
, @GetMapping
não lida com a conversão de dados JSON.
E - PathParam:
@PathParam é uma anotação usada para extrair parâmetros diretamente da URL do endpoint. Embora seja útil para capturar partes específicas da URL, ela não tem relação com a conversão de dados JSON do corpo da requisição. Portanto, não é a anotação correta para a necessidade apresentada na questão.
Conclusão:
Para que o parâmetro receba corretamente os dados fornecidos pela requisição no formato JSON, a anotação correta a ser usada é @RequestBody. Ela é responsável por indicar ao Spring que o conteúdo da requisição deve ser convertido em um objeto Java, permitindo que Breno manipule esses dados em seu serviço REST.
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
A anotação correta que Breno deve utilizar para que o parâmetro receba os dados da requisição no formato JSON é a
D) RequestBody.
A anotação @RequestBody. instrui o Spring a mapear o corpo da requisição HTTP (que normalmente está em formato JSON) diretamente para o objeto correspondente em Java. Essa é a forma adequada de passar dados da requisição para o controlador em uma API REST.
- A) PostMapping: Indica que o método responde a requisições HTTP POST, mas não mapeia diretamente os dados do corpo da requisição.
- B) RestController: Anotação que define a classe como um controlador REST, mas não é usada para receber dados de requisição.
- C) GetMapping: Define que o método responde a requisições HTTP GET, utilizado para recuperar dados, não para receber dados no corpo da requisição.
- E) PathParam: Usado para mapear variáveis de caminho em uma URL, não para mapear o corpo da requisição.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo