在serverresponse中将mono作为头值传递

yzxexxkh  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(291)

我对FunctionalEndpoints/SpringWebFlux还不太熟悉,我试图将mono作为头值返回,但是我找不到一种方法将其作为头值 header 方法只接受字符串。
路由器功能,

@Bean
RouterFunction<ServerResponse> productRoutes() {
    return route(GET("/products").and(accept(MediaType.APPLICATION_JSON)), getAllProductsHandler());
}

处理函数,

private HandlerFunction<ServerResponse> getAllProductsHandler() {
    return req -> {

        // Here the products and the totalProducts are being returned from the service layer 

        Flux<Product> products = Flux.just(new Product("123"), new Product("234"));
        Mono<Integer> totalProducts = Mono.just(2);

        return ok()
                .header("totalCount", totalProducts)
                .body(products, Product.class);
    };
}

在这里返回mono作为标题值的正确方法是什么?

qgzx9mmu

qgzx9mmu1#

通过单声道链接建立你的React。

final Mono<Integer> totalProducts = Mono.just(2);

return totalProducts.flatMap(value -> ok()
                .header("totalCount", value)
                .body(products, Product.class)
        );

相关问题