Spring boot 如果通量为空,我如何有条件地标题到ResponseEntity
在反应式spring引导控制器中,给定以下方法(kotlin)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项进行比较,则应从流量
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");
}