で注釈が付けられたコントローラーメソッドがあり@JsonView
ます。現在の要件は、指定されたパラメーターが認証されたユーザーと一致するJsonView
場合、この同じメソッドが別のメソッドを使用して応答を返すようにすることです。userId
応答タイプをそのままにして、またはソート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);
}