Closed yurim0628 closed 11 months ago
구현 내용은 Spring Data JPA를 이용한 Pagination 구현하기 - 리뷰 조회 를 참고하시길 바랍니다.
자세한 API 문서는 리뷰 기능 관련 API 설계 모음 를 참고하시길 바랍니다.
/reviews?page={page}&size={size}&period={period}
GET /reviews ( /reviews?page=0&size=10&inputPeriod=THREE_MONTH )
{ "content": [ { "reviewId": 2, "reviewDate": "2023-12-08", "score": 5.0, "content": "굿굿", "orderItemId": 21, "accommodationDetails": { "accommodationId": 11, "accommodationName": "브라운도트호텔 정관점" }, "productDetails": { "productId": 34, "productImage": "http://tong.visitkorea.or.kr/cms/resource/50/2705650_image2_1.jpg", "productName": "캐릭터 룸" } }, { "reviewId": 12, "reviewDate": "2023-12-08", "score": 5.0, "content": "굿굿", "orderItemId": 21, "accommodationDetails": { "accommodationId": 6, "accommodationName": "세심천온천호텔" }, "productDetails": { "productId": 15, "productImage": "http://tong.visitkorea.or.kr/cms/resource/61/3039161_image2_1.JPG", "productName": "일반실(한실)" } }, { "reviewId": 13, "reviewDate": "2023-12-08", "score": 5.0, "content": "굿굿", "orderItemId": 21, "accommodationDetails": { "accommodationId": 6, "accommodationName": "세심천온천호텔" }, "productDetails": { "productId": 15, "productImage": "http://tong.visitkorea.or.kr/cms/resource/61/3039161_image2_1.JPG", "productName": "일반실(한실)" } } ], "pageable": { "sort": { "empty": false, "sorted": true, "unsorted": false }, "offset": 0, "pageNumber": 0, "pageSize": 10, "paged": true, "unpaged": false }, "last": true, "totalElements": 3, "totalPages": 1, "first": true, "size": 10, "number": 0, "sort": { "empty": false, "sorted": true, "unsorted": false }, "numberOfElements": 3, "empty": false }
offset : 전체 요소 중 현재 페이지의 첫 번째 요소가 전체 요소 목록에서 어디에 위치하는지를 나타낸다. ( (page - 1) * size ) pageNumber : 현재 페이지의 번호를 나타낸다. ( page ) pageSize : 한 페이지에 표시되는 요소의 수를 나타낸다. ( size ) totalElements: 전체 요소의 수를 나타낸다. totalPages : 전체 페이지의 수를 나타낸다. ( ( totalElements / size ) + 1 )
/reviews?page={page}&size={size}&sort={sort},{direction}
작성일 (reviewDate) : 리뷰가 작성된 날짜를 기준으로 정렬 ( ASC - 가장 최근 리뷰, DESC - 가장 오래된 리뷰 ) 평점 (score) : 리뷰의 평점을 기준으로 정렬 ( ASC - 가장 낮은 평점, DESC - 가장 높은 평점 ) 주문 번호 (orderItemId) : 주문 번호를 기준으로 정렬 ( ASC - 가장 최근 주문, DESC - 가장 오래된 주문 ) 숙소 이름 (accommodationName) : 숙소 이름을 기준으로 정렬 상품 이름 (productName) : 상품 이름을 기준으로 정렬 ( ASC - 가장 앞선 문자열을 기준으로, DESC - 가장 마지막인 문자열을 기준으로 )
GET /reviews/11 ( /reviews/11?page=0&size=10&sort=reviewDate,DESC )
{ "content": [ { "reviewId": 2, "reviewDate": "2023-12-08", "score": 5.0, "content": "굿굿", "userDetails": { "userId": 3, "userName": "test03" }, "productDetails": { "productId": 34, "productImage": "http://tong.visitkorea.or.kr/cms/resource/50/2705650_image2_1.jpg", "productName": "캐릭터 룸" } }, { "reviewId": 10, "reviewDate": "2023-12-07", "score": 1.0, "content": "너무좋아요(수정)", "userDetails": { "userId": 10, "userName": "호진" }, "productDetails": { "productId": 34, "productImage": "http://tong.visitkorea.or.kr/cms/resource/50/2705650_image2_1.jpg", "productName": "캐릭터 룸" } } ], "pageable": { "sort": { "empty": false, "unsorted": false, "sorted": true }, "offset": 0, "pageNumber": 0, "pageSize": 10, "paged": true, "unpaged": false }, "last": true, "totalElements": 2, "totalPages": 1, "first": true, "size": 10, "number": 0, "sort": { "empty": false, "unsorted": false, "sorted": true }, "numberOfElements": 2, "empty": false }
구현 내용은 Spring Data JPA를 이용한 Pagination 구현하기 - 리뷰 조회 를 참고하시길 바랍니다.
자세한 API 문서는 리뷰 기능 관련 API 설계 모음 를 참고하시길 바랍니다.
1. 사용자 리뷰 조회 API
⚡ Example
요청
응답
⚡ 페이지네이션과 관련된 주요 속성
2. 숙소 리뷰 조회 API
⚡ sort ( 정렬 기준과 방향 ) 예시
⚡ Example
요청
응답