java - 如何将 ResponseEntity 与 Flux 或 Mono 结合起来进行 CRUD 操作
问题描述
嗨,我正在尝试创建一个带有存储库的 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 对象本身不为空,但它的数据为空,我找不到如何检查它。
Flux<Book> books = bookRepository.findAll();
HttpStatus status = books != null ? HttpStatus.OK : HttpStatus.NOT_FOUND;
解决方案
推荐阅读
- javascript - 尽管 Chrome 开发工具控制台验证,jQuery slice() 仍无法正常工作
- java - thread.sleep() 不起作用 - selenium @After,在移动模式下
- node.js - 如何在钩子之前获取 StandAlone 模型以将其包含在上下文中以及如何在 include 中提及多个关联模型
- c++ - shuffle/permute 内在函数如何为 256 位 pd 工作?
- node.js - heroku 代码执行速度慢
- git - 如何修复因中断而停止的 git merge?
- python - 为什么我在 mypy 中使用 await 表达式得到无效语法?
- python - 具有复杂积分界限的 Python scipy.integrate.quad
- python - 将对象转换为超类/仅比较超类的属性
- reactjs - 在 React-Table 中,单击扩展器时如何从 api 获取数据并将其传递给子组件?