我有一个用@JsonView
. JsonView
当前的要求是,如果userId
给定的 in 参数与经过身份验证的用户匹配,则使用不同的方法返回响应。知道响应类型应该保留ResponseEntity<MyObject>
而不应该更改为MappingJacksonValue
或排序,如何实现这一点。
我正在使用 Spring,所以也许一种方法是JacksonMapper
注入默认值并SerializationView
根据方法中的条件更改它。但这里的问题是,注入什么以及如何实现这一目标?
// Some controller annotations
@JsonView(Views.Public.class)
public static ResponseEntity<User> getUser(@PathVariable String userId)
User user = userService.getUser(userId);
User authenticated = userService.getAuthenticatedUser();
if (userId.equals(authenticated.getId())) {
// Change the view class to Views.Restricted.class
}
return new ResponseEntity<>(user, HttpStatus.OK);
}