我的系统中有许多类型的角色,它们都有 DTO -s。我不知道如何以统一的方式实施 UPDATE 。
我想每个用户都应该更新发送PUT请求的帐户信息:/api/account/:id
和 RequestBody 特定的 DTO (因为它们具有不同的属性),基于角色,但由于模糊映射,这是不可能的。
那么,处理这个问题的最佳方法是什么?
答案 0 :(得分:0)
我发现最好的解决方案是在REST控制器中接收JSON对象,然后根据角色使用ObjectMapper将其映射到特定的类。
UserController中
@PutMapping("/account/{id}")
public ResponseEntity update(@PathVariable Long id, @RequestBody String json) {
//...
userService.update(id, json);
//...
}
UserService
public UserDTO update(Long id, String json) throws IOException {
//...
ObjectMapper mapper = new ObjectMapper();
if (Role1)
Role1DTO Role1DTO = mapper.readValue(json, Role1.class);
//...
}