Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Bom dia,
No seu controller, você mapeou o metodo com a anotação tipo isso @PutMapping("/topicos/id)" ?
Bom dia Flávio, tinha mapeado sim, o erro na verdade foi porque acabei usando o getById no lugar do getOne, por ter visto em outra leitura que a partir do 2.5 não usava mais getOne, mas coloquei de volta e funcionou apesar de ficar riscado, obrigado pela atenção.
Bom,
Todo achando estranho, que acontece que o estes métodos foram desprecatados, uma sugestão da documentação depende da sua versão é usar o getReferenceById. Mas como não temos uma visão do seu código, não dá para saber se o problema é este ou isso é apenas um efeito colateral, por exemplo quando deu erro foi de um ID que estava na base?, pois no seu código se o id não existir vai dar erro pois o topico ficará nulo, então minha sugestão é fazer uma validão se o topico diferente de nulo:
Topico topico = topicoRepository.getOne(id);
if(topico != null) {
topico.setTitulo(.....)
}
return topico;
Acredito que não existia o id que eu estava usando na base, pois a única alteração que fiz foi no getOne mesmo, então no caso estava dessa forma getById(id); (acredito que no lugar do id para ter funcionado dessa forma eu teria que criar um id no tópico que eu fosse alterar e usar ele aqui não é isso ?
https://github.com/anidio/API_Rest_Springboot_alura
esse é o repositório que estou usando, como sou iniciante em java e spring não sei se está claro o que estou falando então você pode ver no github o código completo até aqui.
Olá,
Então faltou os tratamentos para validares se estava nulo, pois no código não tratamento, e o erro explode. No caso, par ficar mais elegante se retornar nulo seria colocar uma throw new Excpetion("Id não existe");
Mas está bom o seu código, só lembre-se sempre que vamos usar algo do objeto validar se ele não está nulo antes.