【发布时间】:2019-06-29 21:20:40
【问题描述】:
我正在尝试使用 PATCH 请求。
下面是我正在使用的代码。它就像 if 语句的阶梯
@PatchMapping("/updateInvoiceByEmail/{email}")
public Mono<ResponseEntity<Invoice>> updateInvoiceByEmail(
@PathVariable String email,
@RequestBody Invoice invoice) {
return invoiceRepository
.findByEmail(vendorEmail)
.flatMap(existing -> {
if (invoice.getInvoiceStatus() != null) {
existing.setInvoiceStatus(invoice.getInvoiceStatus());
}
if (invoice.getCanRaise() != null) {
existing.setCanRaise(invoice.getCanRaise());
}
if (invoice.getAttachmentId() != null) {
existing.setAttachmentId(invoice.getAttachmentId());
}
if (invoice.getInvoiceId() != null) {
existing.setInvoiceId(invoice.getInvoiceId());
}
... and so on.
return invoiceRepository.save(existing);
})
.map(updatedInvoice -> new ResponseEntity<>(updatedInvoice, HttpStatus.OK))
.defaultIfEmpty(new ResponseEntity<>(HttpStatus.NOT_FOUND));
我正在使用 Spring WebFlux 和 mongodb
我怎样才能做得更短更干净。
谢谢
【问题讨论】:
-
你不能让它更干净,因为你设计的 api 有这个逻辑。
标签: spring-boot spring-webflux