أنا أقوم بإنشاء API باستخدام Spring Data JPA / hibernate / Spring Boot. لنفترض أن لدي هذا JSON مع هذا الطلب: GET / Parents / 1
{
"id": 1,
"name": "Dad",
"adoptedChildren": [
{
"id": 1,
"name": "Marie",
"age": 10
},
{
"id": 1,
"name": "Robert",
"age": 9
}
]
}
إنه ببساطة أحد الوالدين ولديه طفلان بالتبني. الآن لأي سبب فقد هذا الوالد طفلًا واحدًا ، لذلك أتلقى طلب PUT هذا: PUT / Parents / 1
{
"id": 1,
"name": "Dad",
"adoptedChildren": [
{
"id": 1,
"name": "Robert",
"age": 9
}
]
}
يفتقد JSON طفل واحد.
لدي سؤالان :
هل هذه هي الطريقة الصحيحة للسماح بقطع الرابط بين الوالدين والطفل؟ لا يجب حذف الطفل ، أحتاج فقط لكسر العلاقة بين الاثنين؟
هل يجب أن أسمح بتشغيل PUT فقط على المورد التابع ، لإجبار المستخدم على تحديث العلاقة من جانب الطفل؟
إذا كان الحل (1) على ما يرام ، فكيف يمكنك إجراء هذا التحديث باستخدام Spring Data JPA؟ عندما أقوم بتحديث الكيان بطفل مفقود ، يتجاهله ببساطة!
@PutMapping("parents/{id}") public ItineraryDTO updateItinerary(@PathVariable int id, @RequestBody Parent parent){ return parentRepository.save(parent); }