728x90

이전글

 

[Project] 07. SNS 웹 서비스 제작

이전글 [Project] 06. SNS 웹 서비스 제작 이전글 [Project] 05. SNS 웹 서비스 제작 이전글 https://chordplaylist.tistory.com/219 첫 번째 미션 AWS EC2에 Docker 배포 Gitlab CI & Crontab CD Swagger 회원가입 로그인 포스트 작

chordplaylist.tistory.com

두 번째 미션

  1. 댓글
  2. 좋아요
  3. 마이피드
  4. 알림
  5. Swagger ApiOperation 사용

도전과제

  • 댓글 좋아요, 알림 UI 구현
  • Admin 기능 구현

댓글

요구사항 정의

  • 댓글 목록 조회
    • 댓글 조회는 모든 회원이 권한을 가진다.
    • 제목, 글쓴이, 작성날짜가 표시된다.
    • 목록 기능은 페이징 기능이 포함된다.
      • 한 페이지당 default 피드 갯수는 10개이다.
      • 총 페이지 갯수가 표시된다.
      • 작성날짜 기준으로 최신순으로 sort한다.
  • 댓글 작성
    • 댓글 작성은 로그인 한 사람만 쓸 수 있습니다.
  • 댓글 수정 / 삭제
    • 댓글 수정은 댓글을 작성한 회원만이 권한을 가집니다.

댓글 작성

  • 앤드포인트
    POST /posts/{postsId}/comments
  • 입력
{
    "comment" : "comment test4"
}
  • 리턴
{
    "resultCode": "SUCCESS",
    "result":{
        "id": 4,
        "comment": "comment test4",
        "userName": "test",
        "postId": 2,
        "createdAt": "2022-12-20T16:15:04.270741"
    }
}

댓글 수정

  • 앤드포인트
    PUT /posts/{postId}/comments/{id}
  • 입력
{
    "comment" : "modify comment"
}
  • 리턴
{
    "resultCode": "SUCCESS",
    "result":{
        "id": 4,
        "comment": "modify comment",
        "userName": "test",
        "postId": 2,
        "createdAt": "2022-12-20T16:15:04.270741",
        "lastModifiedAt": "2022-12-23T16:15:04.270741"
        }
}

댓글 삭제

  • 앤드포인트
    DELETE /posts/{postsId}/comments/{id}
  • 리턴
{
    "resultCode": "SUCCESS",
    "result":{
        "message": "댓글 삭제 완료",
        "id": 4
        }
}

댓글 조회

  • 앤드포인트
    GET /posts/{postId}/comments[?page=0]
  • 리턴
{
    "resultCode": "SUCCESS",
    "result":{
    "content":[
        {
        "id": 3,
        "comment": "comment test3",
        "userName": "test",
        "postId": 2,
        "createdAt": "2022-12-20T16:07:25.699346"
        },
        {
        "id": 2,
        "comment": "comment test2",
        "userName": "test",
        "postId": 2,
        "createdAt": "2022-12-20T16:03:30.670768"
        }
    ],
    "pageable":{"sort":{"empty": false, "sorted": true, "unsorted": false }, 
    "offset": 0,…},
    "last": true,
    "totalPages": 1,
    "totalElements": 2,
    "size": 10,
    "number": 0,
    "sort":{
    "empty": false,
    "sorted": true,
    "unsorted": false
    },
    "numberOfElements": 2,
    "first": true,
    "empty": false
    }
}

좋아요

요구사항 정의

  • 좋아요 누르기
  • ‘좋아요’는 한번만 누를 수 있습니다. 중복으로 누르는 경우는 에러 처리.
    • '좋아요'를 반복해서 누르면 취소됩니다.

좋아요 누르기

  • 앤드포인트
POST /posts/{postId}/likes
  • 리턴
{
	"resultCode":"SUCCESS",
	"result": "좋아요를 눌렀습니다."
}

좋아요 개수 확인

  • 앤드포인트
{
	"resultCode":"SUCCESS",
	"result": "좋아요를 눌렀습니다."
}
  • 리턴
{
	"resultCode":"SUCCESS",
	"result": 0
}
반응형
코드플리