Olá Pedro, tudo bem?
Quando utilizamos ferramentas que adicionam camadas de segurança, como proxies reversos ou firewalls de aplicação, é comum que a URI do servidor real não seja exposta diretamente para o cliente. Isso é feito para proteger o servidor de ataques, como o DDoS, que você mencionou.
Para resolver a questão de alterar o domínio base da URI, o Spring Boot, junto com o UriComponentsBuilder, pode ajudar bastante. Você pode configurar o UriComponentsBuilder para construir URIs que apontem para o domínio desejado, sem expor o domínio real do servidor.
Aqui está um exemplo de como você pode fazer isso:
@PostMapping
@Transactional
public ResponseEntity cadastrar(@RequestBody @Valid DadosCadastroMedico dados, UriComponentsBuilder uriBuilder) {
var medico = new Medico(dados);
repository.save(medico);
// Aqui você pode definir o host que deseja expor
UriComponents uriComponents = uriBuilder
.scheme("https")
.host("api.exemplo.com")
.path("/medicos/{id}")
.buildAndExpand(medico.getId());
return ResponseEntity.created(uriComponents.toUri()).body(new DadosDetalhamentoMedico(medico));
}
No exemplo acima, o UriComponentsBuilder é utilizado para construir a URI com o domínio que você deseja expor (api.exemplo.com). Assim, mesmo que o servidor real esteja em um domínio diferente, a URI retornada para o cliente será a que você configurou.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.