Spring 在将 Mono<Void> 转换为 Mono<Response> 时反应性 API 响应空白 body

Spring Reactive API response blank body while transforming Mono<Void> to Mono<Response>

我有一个 returns Mono 的服务电话。现在,在向用户提供 API 响应时,我想发送一些响应。我尝试使用 flatMap 和地图,但它不起作用。它给了我一个空的 body 作为回应。

这里是代码示例

    //Service Call
    public Mono<Void> updateUser(....) {
        .......... return Mono<Void>...
    }

   //Rest Controller
   @PostMapping(value = "/user/{id})
    public Mono<Response> update(......) {
        return service.updateUser(....)
                .map(r -> new Response(200, "User updated successfully"));

    }

当我点击上面的 API 时,它给我一个空的 body 作为回应。谁能帮我在 API 回复中获得 body?

谢谢

如果您希望忽略 MonoFlux 中的 return 值并只触发链中的下一个内容,您可以使用 then 运算符,或 thenReturn 运算符。

不同之处在于 then 采用 MonothenReturn 采用具体值( 将包含在 Mono 中。

@PostMapping(value = "/user/{id})
public Mono<Response> update(......) {
    return service.updateUser(....)
            .thenReturn(new Response(200, "User updated successfully"));
}