在getProductById方法中,我尝试从Mono<Book>
和Mono<Container>
构造Mono<OrderResponse>
,如下所示。问题是该方法返回的响应结构与我应该得到的不同。
public Mono<OrderResponse> getProductById(Integer id) {
Mono<Book> monoBook=Mono.just(id).
flatMap(ops.service(BookingDomainService.class)::getProductById);
Mono<Container> monoCon=Mono.just(id).
flatMap(ops.service(BookingDomainService.class)::getContainerById);
OrderResponse or=new OrderResponse(monoBook,monoCon);
return Mono.just(or);
}
BOOK、Container和Response类的结构如下所示。
x一个一个一个一个x一个一个二个一个x一个一个三个一个
方法getProductById(Integer id)
形成的最终响应为
{
"orderMono": {
"scanAvailable": true
},
"orderContainerMono": {
"scanAvailable": true
}
}
但我需要最后的答复:
我需要最后的回应,如下面的JSON。如何实现它。
Response:
{
"Book": {
"id": 12,
"name": "pn",
"price": 128
},
"Container": {
"containerName": " Cname",
"description": "diesc"
}
}
1条答案
按热度按时间uurity8g1#
您可以使用
Mono.zip
将多个Mono
的结果聚合到一个单一的结果中,当所有给定的Mono都生成了一个项目时,该结果将得到满足。如果希望直接返回
OrderResponse
对象,而不是将其 Package 在Mono
中,则可以 checkoutMono#block
方法。