【发布时间】:2016-05-01 15:59:20
【问题描述】:
考虑遵循 UserDTO 类和 UserController 暴露端点以创建、更新和获取用户。
在 UserDTO 类中拥有 id 属性对于创建和更新没有意义。如果我使用 swagger 或其他自动生成的 API 文档,那么它表明 id 可以在创建端点中传递。但是系统不使用它,因为 ids 是内部生成的。
如果我看一下 get 那么可能我可以摆脱 id 属性,但它肯定是列表用户端点所必需的。
我正在考虑在 get/list 端点中返回内部用户域对象。这样我就可以摆脱 UserDTO 类的 id 属性。
我可以为此采用更好的选择吗?
public class UserDTO {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RestController
@RequestMapping(value = "/users", produces = MediaType.APPLICATION_JSON_VALUE)
public class UserController {
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<Void> create(@RequestBody UserDTO user) {
}
@RequestMapping(value = "{id}", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<UserDTO> get(@PathVariable("id") int id) {
}
@RequestMapping(value = "{id}", method = RequestMethod.PUT)
@ResponseBody
public ResponseEntity<Void> update(@PathVariable("id") int id, @RequestBody UserDTO user) {
}
}
可能有人问过这个问题,但我找不到。所以请原谅我重复的问题。
【问题讨论】:
标签: java rest spring-mvc dto content-negotiation