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

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

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

1 respuesta

¡Hola Alexis!

Parece que estás trabajando en la implementación de un CRUD para pacientes utilizando ResponseEntity en Spring Boot. Vamos a revisar cómo puedes estructurar cada operación del CRUD:

  1. Registrar Paciente (POST):

    • Usas ResponseEntity.created() para devolver un status 201 junto con la URI del nuevo recurso creado.
    • Asegúrate de construir correctamente la URI usando UriComponentsBuilder.
    @PostMapping
    @Transactional
    public ResponseEntity registrar(@RequestBody @Valid DatosRegistroPaciente datos, UriComponentsBuilder uriBuilder) {
        var paciente = new Paciente(datos);
        repository.save(paciente);
    
        var uri = uriBuilder.path("/pacientes/{id}").buildAndExpand(paciente.getId()).toUri();
        return ResponseEntity.created(uri).body(new DatosDetallePaciente(paciente));
    }
    
  2. Listar Pacientes (GET):

    • Devuelves una lista paginada de pacientes con ResponseEntity.ok().
    @GetMapping
    public ResponseEntity<Page<DatosListaPaciente>> listar(@PageableDefault(page = 0, size = 10) Pageable paginacion) {
        var page = repository.findAllByActivoTrue(paginacion).map(DatosListaPaciente::new);
        return ResponseEntity.ok(page);
    }
    
  3. Actualizar Paciente (PUT):

    • Utilizas ResponseEntity.ok() para devolver el paciente actualizado.
    @PutMapping
    @Transactional
    public ResponseEntity actualizar(@RequestBody @Valid DatosActualizacionPaciente datos) {
        var paciente = repository.getReferenceById(datos.id());
        paciente.actualizarInformacion(datos);
        return ResponseEntity.ok(new DatosDetallePaciente(paciente));
    }
    
  4. Eliminar Paciente (DELETE):

    • Usas ResponseEntity.noContent() para indicar que la operación fue exitosa pero no hay contenido que devolver.
    @DeleteMapping("/{id}")
    @Transactional
    public ResponseEntity eliminar(@PathVariable Long id) {
        var paciente = repository.getReferenceById(id);
        paciente.desactivar();
        return ResponseEntity.noContent().build();
    }
    
  5. Detallar Paciente (GET):

    • Devuelves la información detallada de un paciente específico.
    @GetMapping("/{id}")
    public ResponseEntity detallar(@PathVariable Long id) {
        var paciente = repository.getReferenceById(id);
        return ResponseEntity.ok(new DatosDetallePaciente(paciente));
    }
    

Asegúrate de que tu repositorio y las clases de datos (DatosRegistroPaciente, DatosDetallePaciente, etc.) estén correctamente configuradas para manejar las operaciones necesarias.

Espero que esto te sea de ayuda y buenos estudios!