Skip to content

Instantly share code, notes, and snippets.

@Aleksandr-Filichkin
Created September 30, 2019 06:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Aleksandr-Filichkin/fe700a82180cde91e652eb9ee2b9d0c0 to your computer and use it in GitHub Desktop.
Save Aleksandr-Filichkin/fe700a82180cde91e652eb9ee2b9d0c0 to your computer and use it in GitHub Desktop.
Reactive controller
@RestController
@RequestMapping("/reactive")
public class Controller {
private final R2DBCSubscriptionRepository userRepository;
@Autowired
public Controller(R2DBCSubscriptionRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping("user/{id}")
public Mono<User> get(@PathVariable long id) {
return userRepository.findById(id);
}
@PostMapping("user")
public Mono<User> add(@RequestBody User user) {
user.setCreated(Instant.now());
return userRepository.save(user);
}
@DeleteMapping("user/{id}")
public Mono<Void> delete(@PathVariable long id) {
return userRepository.deleteById(id);
}
@GetMapping("users")
public Flux<User> getWithLimit(@RequestParam int limit) {
return userRepository.findWithLimit(limit);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment