Spring WebFlux - 如何 return 一个不同于 Mono 源的类型?
Spring WebFlux - how to return a different type than Mono source?
使用 Spring Reactor 做我的第一步,我正在努力研究 RestController 如何 return 一个不同的 bean 作为输入参数。我有以下方法:
@PostMapping
public Mono<Site> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site ).
doOnNext( repository::save);
}
假设 repository::save return 是一个指示成功或失败的布尔值,如何获取这个 returned 值并将其用于 return 一些自定义 DTO 作为响应?所以最终方法看起来像:
@PostMapping
public Mono<SomeResponse> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site ).
doOnNext( repository::save)
.someCodeThatGetTheReturnedValueAndReturnsSomeResponse;
}
使用 Mono::map and Mono:flatMap 进行转换。
@PostMapping
public Mono<SomeResponse> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site )
.map(repository::save)
.map(booleanVar -> createSomeResponseFromBoolean(booleanVar));
}
使用 Spring Reactor 做我的第一步,我正在努力研究 RestController 如何 return 一个不同的 bean 作为输入参数。我有以下方法:
@PostMapping
public Mono<Site> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site ).
doOnNext( repository::save);
}
假设 repository::save return 是一个指示成功或失败的布尔值,如何获取这个 returned 值并将其用于 return 一些自定义 DTO 作为响应?所以最终方法看起来像:
@PostMapping
public Mono<SomeResponse> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site ).
doOnNext( repository::save)
.someCodeThatGetTheReturnedValueAndReturnsSomeResponse;
}
使用 Mono::map and Mono:flatMap 进行转换。
@PostMapping
public Mono<SomeResponse> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site )
.map(repository::save)
.map(booleanVar -> createSomeResponseFromBoolean(booleanVar));
}