Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que nao colocar o id na url?

Ola,

Nao seria uma melhor pratica passar o id pela url, e no corpo da requisição, nao passar o id? Ai recupera o id com o @PathVariable, recupera o medico atual e faz a copia dos dados?

Porque dessa forma, se eu usar uma lib como BeanUtils ou ModelMapper, ele vai fazer a troca do id, e como esta dentro de uma transacion a jpa vai disparar uma exception de mudanda de id.

certo?

1 resposta
solução!

Olá Thiago,

Tem um tópico parecido aqui: https://cursos.alura.com.br/forum/topico-duvida-na-atualizacao-de-medico-put-263262

A prática de passar o ID pela URL é comum em APIs REST, mas não há uma regra que exige que o ID seja sempre passado pela URL ou pelo corpo da requisição.

Passar o ID pela URL pode ser útil em casos em que você precisa acessar um recurso específico, como "/medicos/1" para acessar o médico com ID 1. Além disso, o uso do @PathVariable permite que você recupere o ID facilmente e execute as operações necessárias.

Passar o ID pelo corpo da requisição também é uma opção viável, especialmente se você estiver trabalhando com objetos mais complexos que possuem muitos atributos e não quer sobrecarregar a URL com muitos parâmetros.

Quanto ao uso de BeanUtils ou ModelMapper, é importante lembrar que essas bibliotecas podem ser úteis para copiar os dados de um objeto para outro, mas é necessário ter cuidado ao manipular IDs. Se você estiver usando uma biblioteca como essa para copiar os dados, é importante garantir que o ID não seja copiado juntamente com os outros atributos, para evitar problemas como a mudança de ID dentro de uma transação.

Espero ter ajudado e bons estudos!