Hola Wilder, espero que estés bien
Parece que estás trabajando en implementar ResponseEntity
para las funcionalidades CRUD de pacientes en tu proyecto de Spring Boot. Vamos a revisar tu código y ver cómo puedes asegurarte de que todo esté funcionando correctamente.
En tu método registrar
, estás usando ResponseEntity
para devolver un estado HTTP 200 cuando el paciente se guarda correctamente. Esto parece estar bien, pero podrías considerar devolver un estado 201 (Created) para indicar que un nuevo recurso ha sido creado.
@PostMapping
public ResponseEntity<Void> registrar(@RequestBody @Valid DatosRegistroPaciente datos) {
repository.save(new PacienteJPA(datos));
return ResponseEntity.status(HttpStatus.CREATED).build();
}
Para el método listar
, parece que ya estás devolviendo una ResponseEntity
con el estado 200, lo cual es correcto.
En el método actualizarpaciente
, estás devolviendo un ResponseEntity
con el objeto actualizado. Esto es adecuado, pero asegúrate de manejar el caso en el que el paciente no se encuentre.
@PutMapping
public ResponseEntity<DatosDetallePaciente> actualizarpaciente(@RequestBody @Valid DatosActualizacionPaciente datos) {
var paciente = repository.findById(datos.id());
if (paciente.isPresent()) {
paciente.get().actualizarInformaciones(datos);
return ResponseEntity.ok(new DatosDetallePaciente(paciente.get()));
} else {
return ResponseEntity.notFound().build();
}
}
Para el método eliminar
, estás devolviendo un estado 204 (No Content), lo cual es correcto para una operación de eliminación exitosa. Asegúrate también de manejar el caso en el que el paciente no exista.
@DeleteMapping("/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) {
var paciente = repository.findById(id);
if (paciente.isPresent()) {
paciente.get().eliminar();
return ResponseEntity.noContent().build();
} else {
return ResponseEntity.notFound().build();
}
}
En el método detallar
, asegúrate de manejar el caso en el que el paciente no sea encontrado.
@GetMapping("/{id}")
public ResponseEntity<DatosDetallePaciente> detallar(@PathVariable Long id) {
var paciente = repository.findById(id);
if (paciente.isPresent()) {
return ResponseEntity.ok(new DatosDetallePaciente(paciente.get()));
} else {
return ResponseEntity.notFound().build();
}
}
Espero que estas sugerencias te ayuden a mejorar la implementación de tu API. ¡Buena suerte con tu proyecto!
Espero haber ayudado y buenos estudios!