Spring boot 如果通量为空,我如何有条件地标题到ResponseEntity

Spring boot 如果通量为空,我如何有条件地标题到ResponseEntity,spring-boot,spring-webflux,Spring Boot,Spring Webflux,在反应式spring引导控制器中,给定以下方法(kotlin) fun rows():ResponseEntity{ val元素:Flux=service.fetchRows()//未显示 返回响应性 .ok() .标题( ResultRowPagination.NEXT_页面_标题,“值”) ) .主体(要素) } 有没有办法不设置ResultRowPagination。如果流量为空(a)或包含的项目少于10项(B),则下一页的页眉根本不设置该列表?如果要将其大小与10项进行比较,则应从流量

在反应式spring引导控制器中,给定以下方法(kotlin)

fun rows():ResponseEntity{
val元素:Flux=service.fetchRows()//未显示
返回响应性
.ok()
.标题(
ResultRowPagination.NEXT_页面_标题,“值”)
)
.主体(要素)
}

有没有办法不设置ResultRowPagination。如果流量为空(a)或包含的项目少于10项(B),则下一页的页眉根本不设置该列表?

如果要将其大小与10项进行比较,则应从流量中收集列表

也许这可以帮助你:

Mono<ResponseEntity<List<ResultRow>>> rows() {
    Flux<ResultRow> elements = ...;

    return elements
            .collectList()
            .map(resultRows -> prepareHeaders(resultRows)
                    .body(resultRows))
            .switchIfEmpty(Mono.just(ResponseEntity.ok()
                    .build()));
}

ResponseEntity.BodyBuilder prepareHeaders(List<ResultRow> resultRows) {
    if (resultRows.isEmpty() || resultRows.size() < 10)
        return ResponseEntity.ok();
    return ResponseEntity.ok()
            .header(ResultRowPagination.NEXT_PAGE_HEADER, "value");
}
Mono行(){
通量元素=。。。;
返回元素
.LIST()
.map(resultRows->prepareHeaders(resultRows)
.body(resultRows))
.switchIfEmpty(Mono.just(ResponseEntity.ok)()
.build());
}
ResponseEntity.BodyBuilder准备负责人(列表结果视图){
if(resultRows.isEmpty()| | resultRows.size()<10)
返回ResponseEntity.ok();
返回ResponseEntity.ok()
.header(ResultRowPagination.NEXT_PAGE_header,“value”);
}
Mono<ResponseEntity<List<ResultRow>>> rows() {
    Flux<ResultRow> elements = ...;

    return elements
            .collectList()
            .map(resultRows -> prepareHeaders(resultRows)
                    .body(resultRows))
            .switchIfEmpty(Mono.just(ResponseEntity.ok()
                    .build()));
}

ResponseEntity.BodyBuilder prepareHeaders(List<ResultRow> resultRows) {
    if (resultRows.isEmpty() || resultRows.size() < 10)
        return ResponseEntity.ok();
    return ResponseEntity.ok()
            .header(ResultRowPagination.NEXT_PAGE_HEADER, "value");
}