배 지원 closed issue #13: Comment at 배 지원 / finalproject-baejiwon

배 지원
2023-01-12T07:13:36Z

Comment(댓글 작성)

DB ERD

1. API 명세서

종류 | Url
기본 | /api/v1
포스트 | /posts

2. 댓글

(1) 댓글 목록 조회

api => GET /posts/{postId}/comments[?page=0]

댓글 조회는 모든 회원이 권한을 가진다.

제목, 글쓴이, 작성날짜가 표시된다.

목록 기능은 페이징 기능이 포함된다.

한 페이지당 default 피드 갯수는 10개이다.

총 페이지 갯수가 표시된다.

작성날짜 기준으로 최신순으로 sort한다.

Response

{
"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
}
}

(2) 댓글 작성

api => POST /posts/{postsId}/comments

댓글 작성은 로그인 한 사람만 쓸 수 있습니다.

예외처리

로그인 하지 않은 경우

게시물이 존재하지 않는 경우

Request

{
"comment" : "comment test4"
}

Response

{
"resultCode": "SUCCESS",
"result":{
"id": 4,
"comment": "comment test4",
"userName": "test",
"postId": 2,
"createdAt": "2022-12-20T16:15:04.270741"
}
}

(3) 댓글 수정

api => PUT /posts/{postId}/comments/{id}

댓글 수정은 댓글을 작성한 회원만이 권한을 가집니다.

예외처리

인증 실패(토큰 오류, 로그인을 하지 않은 경우)

댓글 불일치

작성자 불일치(게시물 작성자 이름 불일치)

데이터베이스 에러(DB에 없는 데이터일 경우)

Request

{
"comment" : "modify comment"
}

Response

{
"resultCode": "SUCCESS",
"result":{
"id": 4,
"comment": "modify comment",
"userName": "test",
"postId": 2,
"createdAt": "2022-12-20T16:15:04.270741"
}
}

(4) 댓글 삭제

api => DELETE /posts/{postsId}/comments/{id}

예외처리

인증 실패(토큰 오류, 로그인을 하지 않은 경우)

댓글 불일치

작성자 불일치(게시물 작성자 이름 불일치)

데이터베이스 에러(DB에 없는 데이터일 경우)

Response

{
"resultCode": "SUCCESS",
"result":{
"message": "댓글 삭제 완료",
"id": 4
}
}