java - @RequestBody 应该用 Spring Webflux 中的 Mono Publisher 包装吗?
问题描述
我正在研究 Spring-Webflux,我只是想知道我是否也应该用 Mono Publisher 包装我的 @RequestBody 对象?
例如:
@RequestBody Mono<SavePriceViewModel> saveModel
例子:
@PostMapping("/item")
public Mono<ResponseEntity<PriceViewModel>> createHeaderAndItem(@RequestBody Mono<SavePriceViewModel> saveModel) {
return service.createHeaderAndItem(saveModel).doOnSuccess(r -> log.debug("createHeaderAndItem() returned."));
}
解决方案
请求正文不必是单声道的,我们可以返回一个Mono<ResponseModel>
不需要的 ResponseEntity
@PostMapping("/item")
public Mono<PriceViewModel> createHeaderAndItem(@RequestBody SavePriceViewModel saveModel) {
return service.createHeaderAndItem(saveModel).doOnSuccess(r -> log.debug("createHeaderAndItem() returned."));
}
有关序列化和反序列化的更多信息,请查看此。 https://docs.spring.io/spring/docs/5.1.9.RELEASE/spring-framework-reference/web-reactive.html#webflux-codecs
当解码到一个多值发布者(例如 Flux)时,一旦为一个完整的对象接收到足够的字节,每个 TokenBuffer 就会被传递给 ObjectMapper。输入内容可以是 JSON 数组,如果内容类型为 ,则可以是行分隔的 JSON
"application/stream+json"
。
推荐阅读
- javascript - “any[]”类型的参数不能分配给“A”类型的参数。类型“any[]”中缺少属性“a”
- android - 使用 Android 分页库处理错误
- python - 将 Python 短形式 for 循环转换为长形式
- office365 - 有没有办法使用图形 API / sharepoint API 检测 office online 何时完成保存在 sharepoint 中?
- python - 使用 pandas 将连接的字符串拆分为单独的列
- javascript - 如何使用图像预览多次显示文件输入按钮?
- python - 基于共享节点在 Pandas 中查找邻居
- vue.js - 带有vue-routes的Vuejs无法读取未定义的属性“路径”
- python - 如何使用python从文本文件中获取特定值
- node.js - node.js(使用 ts-node)引用本地 TypeScript 模块导致构造函数的 TypeError