【发布时间】:2019-12-20 13:28:31
【问题描述】:
我有一个包含对象的数组的 json 文件。我想遍历每个对象并发送一个带有正文的发布请求。我的问题或疑问是尝试遍历数组中每个对象的 @RequestBody 并调用 createObj 方法。
我将 json 粘贴到 Postman 中进行测试 我已经有一个像这样的 createObject 但它适用于 Mono 而不是多个
我试着像这样迭代它
@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);
});
}
【问题讨论】:
标签: java spring spring-boot http spring-webflux