2017년 6월 8일 목요일

pageImpl 로 반환된 json 타입 restTemplate 호출하기

data jpa를 쓰는 경우 응답 처리의 paging 처리를 하기 위해 pageImpl로 반환하는 경우가 많다.
이 결과를 restTemplate으로 호출하는 경우 pageImpl 으로 반환하는 방법은 다음과 같다.
pageImpl을 재선언하여 restTemplate 호출을 받을 수 있는 class를 만든다.
아래는 단순 map 형태로 반환 받는 pageImpl의 구현 예이다.
@JsonIgnoreProperties(ignoreUnknown = true)
public class RestPageImpl extends PageImpl<Map<?, ?>> {
 private static final long serialVersionUID = 1L;

 @JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
 public RestPageImpl(@JsonProperty("content") List<Map<?, ?>> content, @JsonProperty("number") int page,
   @JsonProperty("size") int size, @JsonProperty("totalElements") long total) {
  super(content, new PageRequest(page, size), total);
 }

 public RestPageImpl(List<Map<?, ?>> content, Pageable pageable, long total) {
  super(content, pageable, total);
 }

 public RestPageImpl(List> content) {
  super(content);
 }

 @SuppressWarnings("unchecked")
 public RestPageImpl() {
  super(Collections.EMPTY_LIST);
 }
}

댓글 없음:

댓글 쓰기