Как объединить ResponseEntity с Flux или Mono для операций CRUD

#java #spring-webflux

#java #spring-webflux

Вопрос:

Привет, я пытаюсь создать CRUD-контроллер с репозиторием, но я не смог найти ни одного примера для использования в качестве ссылки. Я хочу сделать что-то подобное ниже.

     @RequestMapping(value = "/api/open/books", method = RequestMethod.GET)
        public ResponseEntity<Flux<Book>> getBooks() {

            Flux<Book> books = bookRepository.findAll();
            // if books is null 
                       return new ResponseEntity<Flux<Book>>(books, HttpStatus.NOT_FOUND);
            // else
                       return new ResponseEntity<Flux<Book>>(books, HttpStatus.OK);
    }

    @RequestMapping(value = "/api/open/books", method = RequestMethod.PUT)
        public ResponseEntity<Mono<Book>> updateBook(@RequestBody Book bookObject) {

            Mono<Book> book = bookRepository.findById(bookObject.getId());
            // if book is null 
                       return new ResponseEntity<Flux<Book>>(books, HttpStatus.NOT_FOUND);
            // else
                       bookRepository.save(book);
                       return new ResponseEntity<Flux<Book>>(books, HttpStatus.OK);
    }
 

Я пробовал что-то подобное, но он всегда возвращает OK, потому что сам объект Flux или Mono не равен null, но его данные равны null, я не мог найти, как это проверить.

 Flux<Book> books = bookRepository.findAll();
 HttpStatus status = books != null ? HttpStatus.OK : HttpStatus.NOT_FOUND;
 

Комментарии:

1. У меня тоже такая же проблема

2. я выполнил простой поиск в Google по запросу «spring webflux crud» и получил 100 просмотров. Вот первый medium.com/swlh /… проголосовали за закрытие