@RequestBody 是否应该在 Spring Webflux 中用 Mono Publisher 包装?

Sla*_*wak 5 java reactive spring-webflux

我正在研究 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."));
}
Run Code Online (Sandbox Code Playgroud)

Rag*_*nti 3

请求主体不必是单声道的,我们可以返回Mono<ResponseModel>不需要的 ResponseEntity

@PostMapping("/item")
public Mono<PriceViewModel> createHeaderAndItem(@RequestBody SavePriceViewModel saveModel) {
   return service.createHeaderAndItem(saveModel).doOnSuccess(r -> log.debug("createHeaderAndItem() returned."));
}
Run Code Online (Sandbox Code Playgroud)

有关序列化和反序列化的更多信息,请检查此。 https://docs.spring.io/spring/docs/5.1.9.RELEASE/spring-framework-reference/web-reactive.html#webflux-codecs

当解码到多值发布者(例如 Flux)时,一旦接收到完整形成的对象的足够字节,每个 TokenBuffer 就会传递到 ObjectMapper。输入内容可以是 JSON 数组,如果 content-type 为 ,则可以是行分隔的 JSON "application/stream+json"