프로젝트E. 예약 : 한줄평 관련 WEB API

oyeon·2021년 3월 18일
0
post-custom-banner

개요

  • 예약했던 상품에 댓글 달기, 댓글 목록 보기(기존 내용 수정), 이미지 다운로드 기능 구현
  • 해당 기능을 Web API 문서로 작성

요구사항

  • 기존의 프로젝트에 Controller, Service, Dao 등을 추가하여 개발합니다.
  • Spring Security를 이용하여 로그인 페이지를 작성한다.
  • Swagger를 이용해 Web API 테스트 페이지를 제공합니다.
  • Web API를 JUnit을 이용해 Test합니다.

설명

POST (댓글 등록하기): /api/comments

댓글을 등록하기 위해서는 로그인한 상태여야 한다.
예약했던 상품에만 댓글을 달 수 있다.

reservationInfoId : 예약 id
score : 평점
comment : 댓글
multipartFile : 댓글 이미지 파일

GET (댓글 목록 구하기): /api/comments

상품의 댓글을 최대 5건씩 읽어온다. 댓글은 상품별로 저장된다.

totalCount : 해당 상품의 댓글 전체 수
commentCount : 읽어온 댓글 수
reservationUserComments : 댓글 정보

GET (이미지 다운로드하기): /api/files/{fileId}

fileId에 해당하는 파일을 다운로드하여 출력한다.

결과

Swagger 페이지

POST (댓글 등록하기): /api/comments

GET (댓글 목록 구하기): /api/comments

{
  "totalCount": 21,
  "commentCount": 3,
  "reservationUserComments": [
    {
      "id": 3,
      "productId": 1,
      "reservationInfoId": 3,
      "score": 5,
      "userId": 3,
      "comment": "또 가보고 싶어요.",
      "reservationUserCommentImages": []
    },
    {
      "id": 2,
      "productId": 1,
      "reservationInfoId": 2,
      "score": 5,
      "userId": 2,
      "comment": "최고!!!!",
      "reservationUserCommentImages": [
        {
          "id": 2,
          "reservationInfoId": 1,
          "reservationUserCommentId": 2,
          "fileId": 2,
          "fileName": "2_map_2.png",
          "saveFileName": "img_map/2_map_2.png",
          "contentType": "image/png",
          "deleteFlag": 0,
          "createDate": 1611941114000,
          "modifyDate": 1611941114000
        }
      ]
    },
    {
      "id": 1,
      "productId": 1,
      "reservationInfoId": 1,
      "score": 4,
      "userId": 1,
      "comment": "좋았어요.",
      "reservationUserCommentImages": [
        {
          "id": 1,
          "reservationInfoId": 1,
          "reservationUserCommentId": 1,
          "fileId": 1,
          "fileName": "1_map_1.png",
          "saveFileName": "img_map/1_map_1.png",
          "contentType": "image/png",
          "deleteFlag": 0,
          "createDate": 1611941114000,
          "modifyDate": 1611941114000
        }
      ]
    }
  ]
}

GET (이미지 다운로드하기): /api/files/{fileId}

profile
Enjoy to study
post-custom-banner

0개의 댓글