Есть ли способ реализовать разбиение на страницы весной?

Я пытаюсь понять реактивную часть весны 5. Я создал простую точку отдыха для поиска всех объектов, использующих весенний web-flux и весенние данные, реактивные (mongo), но не вижу способа реализовать разбиение на страницы.

Вот мой простой пример в Котлине:

 @GetMapping("/posts/") fun getAllPosts() = postRepository.findAll() 

Означает ли это, что реактивная конечная точка не требует разбивки на страницы? Есть ли способ реализовать разбиение на страницы со стороны сервера с помощью этого стека?

Реактивная поддержка в Spring Data не предоставляет средства возвращаемого типа Page . Тем не Pageable параметр Pageable поддерживается в сигнатурах методов, проходящих по limit и offset к драйверам, и, следовательно, самому хранилищу, возвращая Flux<T> который испускает запрошенный диапазон.

 Flux<Person> findByFirstname(String firstname, Pageable pageable); 

Для получения дополнительной информации ознакомьтесь с текущей справочной документацией для 2.0.RC2 и примеров данных Spring .

Flux обеспечивает skip и методы, чтобы получить поддержку разбивки на страницы, а также вы можете использовать filter и sort для фильтрации и сортировки результата.

Для меня действуют следующие коды.

 @GetMapping("") public Flux<Post> all(@RequestParam(value = "q", required = false) String q, @RequestParam(value = "page", defaultValue = "0") long page, @RequestParam(value = "size", defaultValue = "10") long size) { return this.postRepository.findAll() .filter(p -> Optional.ofNullable(q).map(key -> p.getTitle().contains(key) || p.getContent().contains(key)).orElse(true)) .sort(comparing(Post::getCreatedDate).reversed()) .skip(page * size).take(size); }