Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Haga lo que hicimos: ResponseEntity

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

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.

Registro de Paciente

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();
}

Listar Pacientes

Para el método listar, parece que ya estás devolviendo una ResponseEntity con el estado 200, lo cual es correcto.

Actualizar Paciente

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();
    }
}

Eliminar Paciente

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();
    }
}

Detallar Paciente

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!