package com.example.demo.controller; import com.example.demo.model.Student; import com.example.demo.service.StudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @RestController @RequestMapping("/students") public class StudentController { @Autowired private StudentService studentService; @GetMapping(value = "/") public Flux<Student> getStudents() { return studentService.getStudents(); } @GetMapping(value = "/{id}") public Mono<Student> findById(@PathVariable("id") Integer id) { return studentService.findById(id); } @PostMapping(value = "/") public Mono<Student> create(@RequestBody Student student) { return studentService.addStudent(student); } @PutMapping(value = "/{id}") public Mono<Student> update(@RequestBody Student student, @PathVariable("id") Integer id) { return studentService.update(student); } @DeleteMapping(value = "/{id}") public Mono<Void> delete(@PathVariable("id") Integer id) { return studentService.delete(id); } }