Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Parametros sem tipo nas respostas consideradas corretas

Boa noite.

As responstas B e C consideradas corretas, não informam o tipo do segundo parâmetro, conforme abaixo:

Resposta B:

@RequestMapping("/autores/{idAutor}/livros/{idLivro}")
public String obterLivroPeloId(@PathVariable Integer idAutor, @PathVariable idLivro){
  return service.obterLivroPeloId(idAutor, idLivro);
}

Resposta C:

@RequestMapping("/autores/{id1}/livros/{id2}")
public String obterLivroPeloId(@PathVariable(“id1”) Integer idAutor, @PathVariable(“id2” ) idLivro){
  return service.obterLivroPeloId(idAutor, idLivro);
}

Isso gera erro já na compilação do projeto e nem permite sua execução.

Obrigado.

2 respostas

Oii, Carlos! Tudo bem?

Obrigada por compartilhar a sua sugestão e você está no caminho certo.

Pelo código que compartilhou pude perceber que as respostas estão com algumas diferenças que podem causar o erro. Ambas devem incluir a declaração de tipo Integer para o segundo parâmetro.

Por exemplo: Resposta B:

@RequestMapping("/autores/{idAutor}/livros/{idLivro}")
public String obterLivroPeloId(@PathVariable Integer idAutor, @PathVariable Integer idLivro){
  return service.obterLivroPeloId(idAutor, idLivro);
}

Resposta C:

@RequestMapping("/autores/{id1}/livros/{id2}")
public String obterLivroPeloId(@PathVariable("id1") Integer idAutor, @PathVariable("id2") Integer idLivro){
  return service.obterLivroPeloId(idAutor, idLivro);
}

Veja que nas duas respostas, os parâmetros idAutor e idLivro são corretamente anotados com @PathVariable e têm seu tipo declarado como Integer. Sendo assim, o código funcionaria sem mais problemas.

Espero ter ajudado a esclarecer melhor. Qualquer dúvida, compartilhe com a gente. A Alura preza muito pela interação de vocês aqui na comunidade!

Bons estudos, Carlos!

solução!

Obrigado Nathalia.