到目前为止,我已经使用Spring Boot完成了一个(REST)项目,并且非常喜欢它。我发现有点狡猾的一件事是我对@RequestBody
的理解。我是否需要为Spring Boot中的每个@RequestBody分开一个对象
假设我有下面的POST方法来登录用户。我的用户实体可能包含一些属性,而不仅仅是用户名和密码,我希望发布后请求。在这种情况下,我看不到任何其他选择,只能制作一个额外的对象(LoginRequest)来保存传入数据的数据。
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<User> login(@RequestBody LoginRequest request) {
User p = null;
if (request != null) {
p = User.login(request.getEmail(), request.getPassword()); // validates and returns user if exists
if (p != null){
return new ResponseEntity<User>(p, HttpStatus.OK);
}
}
throw new IllegalArgumentException("Password or email incorrect");
}
类似地,我想要@ResponseBody
返回其中例如密码被排除的用户对象的最小化版本。
这个问题的一些标准方法是什么?我真的必须为每个'json-view'创建一个单独的对象吗?我在Python中做了一些REST的东西,在这里我只需要一个包含请求属性的字典。任何类似的方法?
您是否想忽略某个属性的值作为返回视图或作为请求读取的同一类? – Zico