Я очень новичок в Spring REST Api. Пара сомнений:
DOUBT1:
class UserDTO {
long id;
String name;
int age;
// getters and setters
}
CASE1:
public void doSomethng(@RequestBody UserDTO userDTO){
repository.findById(userDTO.getId());
}
CASE2:
public void doSomethng(@RequestBody long id){ //Is this correct?
repository.findById(id);
}
CASE3:
public void doSomethng(@RequestBody Map<Long, Object> map){ //Is this correct?
repository.findById(map.get("id"));
}
Мне действительно нужно передать только «id» для POST-запрос.
Итак, из вышеперечисленных 3 случаев, что является хорошей практикой? для меня длинный идентификатор кажется разумным. Я не понимаю, в каких случаях передача карты как RequestBody намного лучше, чем DTO?
DOUBT2:
Я в настоящее время используя DTO как двунаправленный. Итак, использование двунаправленного сообщения для DTO является правильным? Буду ли я сталкиваться с какими-либо проблемами с дизайном DTO?
class UserDTO {
long id;
List<OrderDTO> orders;
}
class OrderDTO {
long orderId;
UserDTO userDTO;
}