티스토리 뷰

RESTAPI

RESTAPI - Event 목록 API

엔꾸꾸 2019. 8. 19. 21:03

REST API -Event list API

  • 이벤트 목록 조회 API 구현

필요한것

  • Event 목록 Paging 정보와 함께 Query
  • Sort, Paging 여부 확인
  • Event -> EventResource로 변환하여 받기
    • 각 EventResource 마다 Self 존재 여부 확인
  • 링크 정보 확인
    • self
    • profile
  • 문서화

테스트 코드 작성

  • 이벤트 데이터 30개 중 10개씩 2번 페이지를 조회하는 테스트 코드
  • 테스트 코드를 하나하나 살펴보자.

 

  • 이벤트 데이터 30개 생성
    • 페이징 이전에 테스트 데이터가 필요하기때문에 30개의 테스트 데이터를 생성한다.

 

  • 2페이지에 해당하는 이벤트 목록을 요청
    • GET /api/events?page=1&size=10&sort=name,DESC로 요청을 보낸다.
    • 페이징과 관련된 파라메터들은 어떻게 처리해야할까 ?

     

페이징 과 정렬

  • Spring Data Jpa 가 제공하는 Pageable
    • paging 과 관련된 정보들을 받아올 수 있음.

 

  • Pageable.java

 

문제점

  • 페이징 처리와 함께 첫페이지, 이전페이지, 현재페이지, 다음페이지, 마지막 페이지에 대한 링크 정보는 제공되지만, 각 Event의 상세보기에 해당하는 링크정보는 제공되고 있지 않다.

 

해결 방안

  • 먼저 페이징처리된 Event 목록을 Resource list로 변경해야한다.
  • 그런 다음 각 Event 들을 Resource 로 변경하여 제공 해야한다.

 

PagedResourceAssembler

  • Page 를 페이징처리가 된 Resource 목록으로 변환해준다.
  • 또한 각 Event를 Resource 로 변환 작업이 필요하다.

 

Profile

  • 마지막으로 Profile 에 대한 링크 정보만 추가해주면 필요한 링크정보는 모두 제공하는 셈이다.
  • Resource로 변환 되면 링크정보를 추가할수 있는 Method를 가지고 있기 때문에 PagedResources 에 profile 링크를 추가해준다.

 

최종 테스트 결과

  • 테스트는 성공적으로 끝나고, target/generated-snippets/query-events 디렉터리에 snippets가 생성된것을 확인할 수 있다.

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함