-
Notifications
You must be signed in to change notification settings - Fork 0
API
김소연 edited this page Nov 16, 2023
·
7 revisions
URL | Method | 기능 |
---|---|---|
/ | GET | 홈 |
/member/sign-up | POST | 회원 가입 |
/member/login | GET | 회원 로그인 |
/member/logout | POST | 회원 로그아웃 |
/member/reissue | GET | 토큰 재발급 |
/boards/{board-id} | GET | 게시판 조회 |
/boards/{board-id}/posts/{post-id} | GET | 게시물 조회 |
/boards/{board-id}/posts | POST | 게시물 추가 |
/boards/{board-id}/posts/{post-id} | PUT | 게시물 수정 |
/boards/{board-id}/posts/{post-id} | DELETE | 게시물 삭제 |
/boards/{board-id}/posts/{post-id}/comments | GET | 게시물 댓글 리스트 조회 |
/boards/{board-id}/posts/{post-id}/comments | POST | 게시물 댓글 추가 |
/boards/{board-id}/posts/{post-id}/comments/{comment-id} | PUT | 게시물 댓글 수정 |
/boards/{board-id}/posts/{post-id}/comments/{comment-id} | DELETE | 게시물 댓글 삭제 |
- 홈 : 게시판 목록을 조회하는 기능
- 게시판 조회 : 게시판에 있는 게시물들을 조회하는 기능
- 게시물 조회 : 게시물 내용을 조회하는 기능(작성 시간, 댓글 수, 읽기 수 포함)
- 게시판 조회 시
- 회원 접근 가능, 비회원 접근 가능, 회원 및 비회원 모두 접근 가능을 멤버ID 를 가지고 권한 판단
- 게시판에 접근 권한이 있는지 확인해야하므로 게시판 하위에 게시물을 두도록 함
- 게시물 조회 시
- 게시물 조회 시 읽기수, 작성된 시간, 작성된 댓글 수 조회해오기
- 게시물 조회할 때마다 읽기 수 추가하기
- 게시물 조회 시 읽기수, 작성된 시간, 작성된 댓글 수 조회해오기
- 게시물과 댓글을 분리해야하는 이유는 댓글 조회 시 페이징 처리를 하기 위해서는 댓글을 따로 조회해와야하기 때문이다.
- 댓글 추가 시 해당 게시물에 댓글 수 추가하기
GET /
필드명 | 타입 | 설명 |
---|---|---|
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
boardNm | String | 게시판명 |
useYn | Char | 사용여부 |
createdAt | Date | 생성일시 |
createdByNm | String | 생성자명 |
updatedAt | Date | 수정일시 |
updatedByNm | String | 수정자명 |
예시
200 OK
[
{
"boardId" : 1,
"boardNm" : "비회원게시판",
"useYn" : "Y",
"createdAt" : "2023-08-12 21:21:51",
"createdById" : 1,
"createdByNm" : "관리자",
"updatedAt" : "2023-08-12 21:21:51",
"updatedByNm" : "관리자",
"roleId" : 1
},
{
"boardId" : 2,
"boardNm" : "회원게시판",
"useYn" : "Y",
"createdAt" : "2023-08-12 21:21:51",
"createdByNm" : "관리자",
"updatedAt" : "2023-08-12 21:21:51",
"updatedByNm" : "관리자",
"roleId" : 2
},
{
"boardId" : 3,
"boardNm" : "회원 및 비회원게시판",
"useYn" : "Y",
"createdAt" : "2023-08-12 21:21:51",
"createdByNm" : "관리자",
"updatedAt" : "2023-08-12 21:21:51",
"updatedByNm" : "관리자",
"roleId" : 3
}
]
POST /member/sign-up
필드명 | 타입 | 설명 |
---|---|---|
String | 이메일 | |
password | String | 비밀번호 |
nickname | String | 닉네임 |
roleId | Int | 권한 |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "회원가입이 완료되었습니다."
}
GET /member/login
필드명 | 타입 | 설명 |
---|---|---|
String | 이메일 | |
password | String | 비밀번호 |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "로그인이 완료되었습니다."
}
GET /boards/{board-id}
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
필드명 | 타입 | 설명 |
---|---|---|
postId | Int | 게시물ID |
boardId | Int | 게시판ID |
title | String | 제목 |
readCnt | Int | 읽기수 |
commentCnt | Int | 댓글수 |
useYn | Char | 사용여부 |
createdAt | Date | 생성일시 |
createdByNm | String | 생성자명 |
예시
200 OK
[
{
"postId" : 1,
"boardId" : 1,
"title" : "제목",
"readCnt" : 10,
"commentCnt" : 10,
"useYn" : "Y",
"createdAt" : "2023-08-12 21:21:51",
"createdByNm" : "사용자"
},
{
"postId" : 2,
"boardId" : 1,
"title" : "제목2",
"readCnt" : 9,
"commentCnt" : 9,
"useYn" : "Y",
"createdAt" : "2023-08-13 21:21:51",
"createdByNm" : "사용자"
},
{
"postId" : 3,
"boardId" : 1,
"title" : "제목3",
"readCnt" : 10,
"commentCnt" : 10,
"useYn" : "Y",
"createdAt" : "2023-08-14 21:21:51",
"createdByNm" : "사용자"
}
]
GET /boards/{board-id}/posts/{post-id}
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
postId | Int | 게시물ID |
필드명 | 타입 | 설명 |
---|---|---|
postId | Int | 게시물ID |
boardId | Int | 게시판ID |
title | String | 제목 |
content | String | 내용 |
readCnt | Int | 읽기수 |
commentCnt | Int | 댓글수 |
useYn | Char | 사용여부 |
createdAt | Date | 생성일시 |
createdByNm | String | 생성자명 |
updatedAt | Date | 수정일시 |
updatedByNm | String | 수정자명 |
예시
200 OK
{
"postId" : 1,
"boardId" : 1,
"title" : "제목",
"content" : "내용",
"readCnt" : 10,
"commentCnt" : 10,
"useYn" : "Y",
"createdAt" : "2023-08-12 21:21:51",
"createdByNm" : "사용자",
"updatedAt" : "2023-08-12 21:21:51",
"updatedByNm" : "사용자"
}
POST /boards/{board-id}/posts
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
title | String | 제목 |
content | String | 내용 |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "게시물 작성이 완료되었습니다."
}
PUT /boards/{board-id}/posts/{post-id}
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
postId | Int | 게시물ID |
title | String | 제목 |
content | String | 내용 |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "게시물 수정이 완료되었습니다."
}
DELETE /boards/{board-id}/posts/{post-id}
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
postId | Int | 게시물ID |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "게시물 삭제가 완료되었습니다."
}
GET /boards/{board-id}/posts/{post-id}/comments
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
postId | Int | 게시물ID |
필드명 | 타입 | 설명 |
---|---|---|
commentId | Int | 댓글ID |
postId | Int | 게시물ID |
content | String | 내용 |
useYn | Char | 사용여부 |
createdAt | Date | 생성일시 |
createdByNm | String | 생성자명 |
updatedAt | Date | 수정일시 |
updatedByNm | String | 수정자명 |
예시
200 OK
[
{
"commentId" : 1,
"postId" : 1,
"content" : "댓글내용",
"useYn" : "Y",
"createdAt" : "2023-08-12 21:21:51",
"createdByNm" : "사용자",
"updatedAt" : "2023-08-12 21:21:51",
"updatedByNm" : "사용자"
},
{
"commentId" : 2,
"postId" : 1,
"content" : "댓글내용",
"useYn" : "Y",
"createdAt" : "2023-08-13 21:21:51",
"createdByNm" : "사용자",
"updatedAt" : "2023-08-13 21:21:51",
"updatedByNm" : "사용자"
},
{
"commentId" : 3,
"postId" : 1,
"content" : "댓글내용",
"useYn" : "Y",
"createdAt" : "2023-08-14 21:21:51",
"createdByNm" : "사용자",
"updatedAt" : "2023-08-14 21:21:51",
"updatedByNm" : "사용자"
}
]
POST /boards/{board-id}/posts/{post-id}/comments
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
postId | Int | 게시물ID |
content | String | 내용 |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "댓글 작성이 완료되었습니다."
}
PUT /boards/{board-id}/posts/{post-id}/comments/{comment-id}
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
postId | Int | 게시물ID |
commentId | Int | 댓글ID |
content | String | 내용 |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "댓글 수정이 완료되었습니다."
}
DELETE /boards/{board-id}/posts/{post-id}/comments/{comment-id}
필드명 | 타입 | 설명 |
---|---|---|
boardId | Int | 게시판ID |
postId | Int | 게시물ID |
commentId | Int | 댓글ID |
필드명 | 타입 | 설명 |
---|---|---|
resultCd | Int | 결과 코드 |
resultMsg | String | 결과 메세지 |
예시
200 OK
{
"resultCd" : 0,
"resultMsg" : "댓글 삭제가 완료되었습니다."
}