Gostaria de tirar algumas dúvidas que tem surgido ao longo das adaptações e alguns conhecimentos que ja possuo:
- Os tipos de Retornos abaixo faz diferença?
@PutMapping
@Transactional
public ResponseEntity atualizar(@RequestBody @Valid DadosToUpdateMedicosDTO dadosUpdateMedicos) {
MedicoModel entityModel = repository.getReferenceById(dadosUpdateMedicos.id());
entityModel.updateDadosMedicos(dadosUpdateMedicos);
return ResponseEntity.ok(new ResponseBodyDadosMedicosDTO(entityModel));
return ResponseEntity.status(HttpStatus.OK).body(new ResponseBodyDadosMedicosDTO(entityModel));
}
- Ao realizar um update dos dados em record do 'DadosToUpdateMedicosDTO', em endereço no record do 'DadosEnderecoDTO' , está permitindo armazenar dados em brancos ou nulos das variaveis criadas: nome, telefone e enderecoDTO(em geral todos). Uma vez que já existe a validação precisaria refazer essas validações? Como ficaria?
public record DadosToUpdateMedicosDTO(
@NotNull
Long id,
String nome,
String telefone,
@JsonProperty("endereco")
@JsonAlias({"enderecoDTO", "endereco DTO", "endereco", "endereco-DTO"})
DadosEnderecoDTO enderecoDTO) {
}
public record DadosEnderecoDTO(
@NotBlank
String logradouro,
@NotBlank
String bairro,
@NotBlank
@Pattern(regexp = "\\d{8}")
String cep,
@NotBlank
String cidade,
@NotBlank
String uf,
String complemento,
String numero) {
}
- Pensando em consolidar uma API e os dados criados DTO's, porque são enviados dados direto da entidade Medico no corpo da response? Seria mais ideal criar um DTO com alguns dados mais específicos e enviar? Ou realmente tem que ser os dados literais que estão no db?