#spring #dto
Вопрос:
Если в запросе есть только один параметр (например, идентификатор участника, полученный для удаления), должен ли я привязать этот параметр к Dto или просто использовать его как примитив?
@DeleteMapping("/members/{memberId}")
ResponseEntity<String> deleteAccount(@PathVariable int memberId){
memberService.deleteAccount(memberId);
return ResponseEntity.status(HttpStatus.OK).body("");
}
против
@DeleteMapping("/members/{memberId}")
ResponseEntity<String> deleteAccount(MemberDeleteDto member){
memberService.deleteAccount(member);
return ResponseEntity.status(HttpStatus.OK).body("");
}
Комментарии:
1. Поскольку это переменная пути, вторая не будет работать, привязка выполняется либо для полей формы к объекту (атрибут модели), либо для привязки тела запроса (с помощью @RequestBody).
2. @M. Deinum Я проверил коды, и оба работают. Итак, должен ли я использовать MemberID в качестве примитива(int) на всем пути к классу репозитория?
3. По-видимому, поддержка параметров URI, которые соответствуют свойству объекта модели, действительно работает (нужно немного покопаться в коде
). Так что используйте любое из них, личные предпочтения.
4. Большое спасибо! Хорошего вам дня
![]()
Ответ №1:
Я бы сказал, что для этого нет правила, но мое предложение состояло бы в том, чтобы упростить его и по возможности использовать примитивы для параметров пути. Если у вас действительно нет очень веской причины для использования полноценного объекта, я бы посоветовал вам не перепроектировать его.