Skip to content
김소연 edited this page Nov 16, 2023 · 7 revisions

API URL

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 를 가지고 권한 판단
    • 게시판에 접근 권한이 있는지 확인해야하므로 게시판 하위에 게시물을 두도록 함
  • 게시물 조회 시
    • 게시물 조회 시 읽기수, 작성된 시간, 작성된 댓글 수 조회해오기
      • 게시물 조회할 때마다 읽기 수 추가하기
  • 게시물과 댓글을 분리해야하는 이유는 댓글 조회 시 페이징 처리를 하기 위해서는 댓글을 따로 조회해와야하기 때문이다.
  • 댓글 추가 시 해당 게시물에 댓글 수 추가하기

API Request, Response Data

GET /

Parameters

필드명 타입 설명

Response

필드명 타입 설명
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

Parameters

필드명 타입 설명
email String 이메일
password String 비밀번호
nickname String 닉네임
roleId Int 권한

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "회원가입이 완료되었습니다."
}

로그인

GET /member/login

Parameters

필드명 타입 설명
email String 이메일
password String 비밀번호

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "로그인이 완료되었습니다."
}

게시판 조회

GET /boards/{board-id}

Parameters

필드명 타입 설명
boardId Int 게시판ID

Response

필드명 타입 설명
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}

Parameters

필드명 타입 설명
boardId Int 게시판ID
postId Int 게시물ID

Response

필드명 타입 설명
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

Parameters

필드명 타입 설명
boardId Int 게시판ID
title String 제목
content String 내용

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "게시물 작성이 완료되었습니다."
}

게시물 수정

PUT /boards/{board-id}/posts/{post-id}

Parameters

필드명 타입 설명
boardId Int 게시판ID
postId Int 게시물ID
title String 제목
content String 내용

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "게시물 수정이 완료되었습니다."
}

게시물 삭제

DELETE /boards/{board-id}/posts/{post-id}

Parameters

필드명 타입 설명
boardId Int 게시판ID
postId Int 게시물ID

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "게시물 삭제가 완료되었습니다."
}

게시물 댓글 리스트 조회

GET /boards/{board-id}/posts/{post-id}/comments

Parameters

필드명 타입 설명
boardId Int 게시판ID
postId Int 게시물ID

Response

필드명 타입 설명
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

Parameters

필드명 타입 설명
boardId Int 게시판ID
postId Int 게시물ID
content String 내용

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "댓글 작성이 완료되었습니다."
}

게시물 댓글 수정

PUT /boards/{board-id}/posts/{post-id}/comments/{comment-id}

Parameters

필드명 타입 설명
boardId Int 게시판ID
postId Int 게시물ID
commentId Int 댓글ID
content String 내용

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "댓글 수정이 완료되었습니다."
}

게시물 댓글 삭제

DELETE /boards/{board-id}/posts/{post-id}/comments/{comment-id}

Parameters

필드명 타입 설명
boardId Int 게시판ID
postId Int 게시물ID
commentId Int 댓글ID

Response

필드명 타입 설명
resultCd Int 결과 코드
resultMsg String 결과 메세지

예시

200 OK

{
    "resultCd" : 0,
    "resultMsg" : "댓글 삭제가 완료되었습니다."
}