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

Alternativa para pegar a URI

Descobri uma outra maneira de pegar a URI:

URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(medico.getId()).toUri();

2 pontos positivos seria que ele já pega a parte do /medicos e não precisa injetar o UriComponentsBuilder no método.

Tem alguma outra diferença entre as duas abordagens?

2 respostas
solução!

Sim, existem algumas diferenças entre essas duas abordagens.

A primeira abordagem utiliza o UriComponentsBuilder para criar a URI a partir dos componentes fornecidos. Isso permite que você tenha um maior controle sobre os componentes da URI, como o esquema, o host, a porta, os caminhos, os parâmetros de consulta e os fragmentos. Além disso, você pode facilmente adicionar ou remover componentes da URI a qualquer momento antes de criá-la.

A segunda abordagem utiliza o ServletUriComponentsBuilder, que é uma implementação específica para servlets do UriComponentsBuilder. Ela utiliza a solicitação atual do servlet para criar a URI, o que significa que ela irá incluir os componentes da URI da solicitação atual, como o esquema, o host, a porta e os caminhos. Isso pode ser útil se você deseja criar uma URI para uma outra rota da aplicação, mas quer manter os componentes da URI da solicitação atual. Além disso, o ServletUriComponentsBuilder possui métodos convenientes para adicionar novos caminhos e parâmetros de consulta à URI.

Em resumo, a primeira abordagem é mais flexível e permite que você tenha um maior controle sobre os componentes da URI, enquanto a segunda abordagem é mais fácil de usar e é especialmente útil se você deseja criar uma URI para outra rota da aplicação, mas quer manter os componentes da URI da solicitação atual. Qual abordagem é a melhor dependerá das suas necessidades específicas.

Valeu pela explicação Diogo!