如何从Mono <entity>获取实体类型?

时间:2019-04-05 14:53:00

标签: mono spring-webflux

如何正确操作带有单个对象的吸气剂/吸气剂

Mono<Product> productMono = webClient.get()
            .uri(catalogUrl + "/{productId}", productId)
            .retrieve()
            .bodyToMono(Product.class)
            .onErrorResume(err -> Mono.empty())
            .switchIfEmpty(Mono.error(new NoSuchProductException()));

然后我想将“ productMono” POJO转换为产品。想你的答案。

1 个答案:

答案 0 :(得分:0)

访问Product实例的正确方法是使用map()操作,如下所示:

@GetMapping("/products/{productId}")
  public Mono<MappedProduct> getProduct(@PathVariable("productId") String productId) {
    return webClient.get()
      .uri(catalogUrl + "/{productId}", productId)
      .retrieve()
      .bodyToMono(Product.class)
      .onErrorResume(err -> Mono.empty())
      .switchIfEmpty(Mono.error(new NoSuchProductException()));
      .map(product -> productMapper(product));   // <-- here you can handle Product instance

  }