使用Spring Reactor进行第一步时,我正在努力解决RestController如何将输入参数返回不同的bean。我有以下方法:
var categories = posts.Select(p => p.CategoryName).Distinct().Select((c, i) => new Category
{
Id = i,
Name = c
}).ToArray();
假设repository :: save返回一个布尔值以指示成功或失败,那么一个人怎么能抓住这个返回值并用它返回一些自定义DTO作为响应呢?因此,最终方法将类似于:
@PostMapping
public Mono<Site> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site ).
doOnNext( repository::save);
}
答案 0 :(得分:3)
使用Mono::map和Mono:flatMap进行转换。
@PostMapping
public Mono<SomeResponse> create( @RequestBody Publisher<Site> site )
{
return Mono.
from( site )
.map(repository::save)
.map(booleanVar -> createSomeResponseFromBoolean(booleanVar));
}