Sapien IA
Computação Múltipla Escolha

Considerando um serviço no estilo REST, implementado com base no framework Spring, e uma entidade Aluno, persistida no sistema através da tecnologia JPA, qual deve ser a assinatura do método que responda a uma consulta no endereço http://localhost:8080/alunos/29891, com o retorno dos dados do aluno de matrícula 29891 no formato JSON?

Considerando um serviço no estilo REST, implementado com base no framework Spring, e uma entidade Aluno, persistida no sistema através da tecnologia JPA, qual deve ser a assinatura do método que responda a uma consulta no endereço http://localhost:8080/alunos/29891, com o retorno dos dados do aluno de matrícula 29891 no formato JSON?

  1. @PostMapping public Aluno metodoX(@RequestBody Aluno aluno)
  2. @GetMapping public Aluno metodoX(@RequestBody Long matricula)
  3. @PutMapping public void metodoX(@RequestBody Aluno aluno)
  4. @GetMapping("{matricula}") public Aluno metodoX(@PathVariable Long matricula)
  5. @DeleteMapping("{matricula}") public Aluno metodoX(@PathVariable Long matricula)

Resolução completa

Explicação passo a passo

D
Alternativa D

Alternativa D

Para atender aos requisitos de um serviço REST utilizando o framework Spring para uma consulta específica, é necessário analisar o método HTTP e a forma como os parâmetros são extraídos da URL.

Análise Técnica:

  1. Método HTTP: A operação descrita é uma "consulta" (leitura de dados), o que em REST corresponde ao método GET. Isso elimina opções que utilizam POST, PUT ou DELETE.
  2. Extração do Parâmetro: O endereço fornecido é http://localhost:8080/alunos/29891. O número 29891 faz parte do caminho da URL (path), não do corpo da requisição. Portanto, deve-se usar a anotação @PathVariable para capturar esse valor dinâmico.
  3. Anotações Spring:
  • @GetMapping: Mapeia requisições GET para o método.
  • {matricula}: Define um placeholder na rota que será substituído pelo valor capturado.
  • Retorno: Retornar a entidade Aluno permite que o Spring converta o objeto para JSON automaticamente (desde que haja o Jackson no classpath).

Por que as outras alternativas estão incorretas?

AlternativaProblema Identificado
A (@PostMapping)Método POST é usado para criar recursos, não consultar. Usa @RequestBody, que espera dados no corpo da mensagem.
B (@RequestBody)O ID está na URL (/alunos/29891), não no corpo da requisição. @RequestBody não funciona bem com @GetMapping para extração de IDs da rota.
C (@PutMapping)Método PUT é usado para atualizar recursos existentes.
E (@DeleteMapping)Método DELETE é usado para remover recursos.

Conclusão:

A alternativa D utiliza a combinação correta de anotações (@GetMapping com mapeamento de rota e @PathVariable) para responder à consulta solicitada.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.