[英]Patch REST API to Partial Update MongoDB in spring boot
我想向我的 API 發送 REST PATCH 請求以僅更新某些字段而不是整個請求正文。 有人可以幫我解決這個問題嗎
@PatchMapping("/update/{id}")
public ResponseEntity<String> update(@Valid @RequestBody Ordonnance ordonnance, @PathVariable("id") String id){
Optional<Ordonnance> ordonnanceData = ordonnanceRepository.findById(id);
this.ordonnanceRepository.save(ordonnance);
return ResponseEntity.ok("resource updated");
}
您可以通過調用從存儲庫返回的 object 上的設置器來修改字段。
@PatchMapping("/update/{id}")
public ResponseEntity<String> update(@Valid @RequestBody Ordonnance ordonnance, @PathVariable("id") String id){
Optional<Ordonnance> dbOrdonnance = ordonnanceRepository.findById(id);
if (!ordonnanceData.isPresent()) {
// The ID entered could not be found.
return ResponseEntity.notFound("Resource with id " + id + " was not found");
}
// Modify the values of the Ordonnance object retrieved from the database
Ordonnance ordonnanceToEdit = dbOrdonnance.get();
ordonnanceToEdit.setField1(ordonnance.getField1());
ordonnanceToEdit.setField2(ordonnance.getField2());
ordonnanceToEdit.setField3(ordonnance.getField3());
// Save to repository
this.ordonnanceRepository.save(ordonnanceToEdit);
return ResponseEntity.ok("Resource with ID " + id + " was successfully updated.");
}
此代碼應該可以工作,但是您應該創建單獨的 Java DTO 類,這些類通常用於傳輸數據。 這樣你就可以只傳入 ID 和你想更新的字段,而不必傳入整個 object。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.