Spring - 根据用户角色更新帐户

时间:2017-12-11 19:54:39

标签: spring mapping put user-accounts ambiguous

我的系统中有许多类型的角色,它们都有 DTO -s。我不知道如何以统一的方式实施 UPDATE

我想每个用户都应该更新发送PUT请求的帐户信息:/api/account/:id RequestBody 特定的 DTO (因为它们具有不同的属性),基于角色,但由于模糊映射,这是不可能的。

那么,处理这个问题的最佳方法是什么?

1 个答案:

答案 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);
    //...
}