이름, 가입일자, 비밀번호, 주민번호를 가진 User 클래스를 api가 요청한 상황에서
비밀번호와 주민번호는 보여주기 싫은 경우에 해당 필드위에 @JsonIgnore 이라는 어노테이션을 사용하거ㅏ
클래스에 @JsonIgnoreProperties(value={"password","ssn"}) 등을 이용하여 응답을 무시할 수 있다.
이렇게 특정 필드만 보여주고 싶을 때에 @JsonFilter 어노테이션을 사용할 수 있다.
다음과 같이 User 라는 도메인이 존재하고 해당 클래스에 필터를 처리하고 싶을 때에
@JsonFilter("필터명") 을 선언 해준다.
그리고 api가 정의되어 있는 해당 코드에서 세부 처리를 해주면 된다.
SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept()로 보여줄 필드만 정의를 한다.
serializeAllExcept() 를 통해서 제외시킬 필드를 정의할 수도 있다.
SimpleFilterProvider.addFilter("정의해준 JsonFilter 필터명", 위의 필터명) 으로 필터 등록을 하고
MappingJacksonValue에 json 형태로 리턴해줄 object value를 적어주고 필터를 추가해준 다음에 return 해주면 된다.
물론 다음과 같이 list 형태도 동일하게 처리해주면 된다.
'Spring' 카테고리의 다른 글
[Spring] @Autowired 생성자 주입방법에 대해서 (0) | 2020.09.18 |
---|---|
[Spring] ResponseEntity에 대해서 (0) | 2020.09.18 |
[Spring] @Valid 를 이용한 Exception처리와 ThymeLeaf 처리 (0) | 2020.09.15 |
[Spring] @ControllerAdvice를 이용한 Exception custom 처리하기 (0) | 2020.09.15 |
[Spring] @ResponseStatus 를 이용해 예외 상태 변경하기 (0) | 2020.09.15 |