簡體   English   中英

如何通過Java Spring Webflux發送多個POST請求

[英]How to Send multiple POST request through Java Spring Webflux

我有一個包含對象的數組的json文件。 我想遍歷每個對象,並在內部發送一個發帖請求。 我的問題是嘗試遍歷數組中每個對象的@RequestBody並調用createObj方法。

我將json粘貼到Postman中進行測試,我已經有一個createObject,但是它適用於Mono而不是multiple

我試圖像這樣迭代

@PostMapping(path = "multicreate", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public Flux<Hospital> createMultipleHospital(@RequestBody Flux<Hospital> hospital) {
   hospital.collectList().flatMap(x -> {
        return hospitalService.createHospital((Mono<Hospital>) x);
    });
       return null;
}
// Should loop and send 2 POST request.
[
  {
      "name": "Miami Cancer Institute",
      "address": "8900 North Kendall Drive",
      "phone": "786-596-2000",
      "zipcode": "33176",
      "city": "Miami",
      "state": "FL"
   },
   {
      "name": "Mercy Hospital",
      "address": "3663 S Miami Ave",
      "phone": "305-854-4400",
      "zipcode": "33133",
      "city": "Miami",
      "state": "FL"
   }
]

調節器

@PostMapping(path = "", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public Mono<Hospital> createHospital(@RequestBody Mono<Hospital> hospital) {
    System.out.println(hospital);
    return hospitalService.createHospital(hospital);
}

服務/資源庫

@Override
public Mono<Hospital> createHospital(Mono<Hospital> hospitalMono) {
  return hospitalMono.flatMap(hosp -> {
     try {
        return reactiveMongoOperations.save(
           hosp.createLatCord(hosp));
          } catch (InterruptedException | ApiException | IOException e) {
              e.printStackTrace();
          }
            return Mono.just(hosp);
        });
}

我剛剛將方法返回類型和參數從MONO切換為FLUX並工作后解決了。

@Override
    public Flux<Hospital> createHospital(Flux<Hospital> hospitalMono) {
        return hospitalMono.flatMap(hosp -> {
            try {
                return reactiveMongoOperations.save(
                        hosp.createLatCord(hosp));
            } catch (InterruptedException | ApiException | IOException e) {
                e.printStackTrace();
            }
            return Mono.just(hosp);
        });
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM