Member

Join Member

Request

POST /api/member/join/student HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 272
Host: localhost:8080

{
  "username" : "test40",
  "password" : "tkddnjs4371@",
  "passwordConfirm" : "tkddnjs4371@",
  "name" : "최상원",
  "email" : "test40@naver.com",
  "nickname" : "test40",
  "year" : "1997",
  "month" : "02",
  "day" : "12",
  "subject" : [ "CHEMISTRY", "BIOLOGY" ]
}

Request Fields

Path Type Description

username

String

사용자 아이디

password

String

사용자 비밀번호

passwordConfirm

String

사용자 비밀번호 확인

name

String

사용자 이름

email

String

사용자 이메일

nickname

String

사용자 닉네임

subject

Array

사용자 관심과목

year

String

사용자 출생년도

month

String

사용자 출생월

day

String

사용자 출생일

Request Path Parameter

Table 1. /api/member/join/{role}
Parameter Description

role

스터디 url

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 12

Join Success

Check Email Valid

Request

GET /api/member/check-email-token?token=ae89ade4-1970-479f-8c60-600937cdfac2&email=test40@naver.com HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Request Parameter

Parameter Description

token

이메일 인증토큰

email

인증해야할 이메일

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18

Join Success Final

Check Email Valid

Request

POST /api/member/join/email-check HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 34
Host: localhost:8080

{
  "email" : "test40@naver.com"
}

Request Field

Path Type Description

email

String

중복 확인하려는 사용자 이메일

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 14

Check Username

Check NickName Valid

Request

POST /api/member/join/nickname-check HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 32
Host: localhost:8080

{
  "nickname" : "forest_choi"
}

Request Field

Path Type Description

nickname

String

중복 확인하려는 사용자 닉네임

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 14

Check Username

Check Username Valid

Request

POST /api/member/join/username-check HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 27
Host: localhost:8080

{
  "username" : "test40"
}

Request Field

Path Type Description

username

String

중복 확인하려는 사용자 아이디

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 14

Check Username

Login

Request

POST /api/member/login HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 58
Host: localhost:8080

{
  "username" : "test40",
  "password" : "tkddnjs4371@"
}

Request Field

Path Type Description

username

String

사용자 아이디

password

String

사용자 비밀번호

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 435

{
  "id" : 37,
  "username" : "test40",
  "accessToken" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0NDAiLCJpYXQiOjE2NjM1NzIzMTUsImV4cCI6MTY2MzU4MzExNX0.V2pw_YS-H1B40HAKJJhO7wvUw1Lwps4rbc8KQTZvEIk46M9--5O6-oA8R_X_JQaPapbLSkEq5hFbawSzEU-SlQ",
  "refreshToken" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0NDAiLCJpYXQiOjE2NjM1NzIzMTUsImV4cCI6MTY2NDE3NzExNX0.fXPxeH86Whq-5bqUITSq34z3LBFR6hcg-u2B3tnxkiBFgUDPx53DvCJrCQXbmJ3fY3M6eikRH72ph851Jw4X8w"
}

Response Field

Path Type Description

id

Number

사용자 PK

username

String

사용자 아이디

accessToken

String

Access Token

refreshToken

String

RefreshToken

Logout

DELETE /api/member/logout HTTP/1.1
Content-Type: application/json
Accept: application/json
Username: test40
X-AUTH-TOKEN: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0NDAiLCJpYXQiOjE2NjM1NzIzMTQsImV4cCI6MTY2MzU4MzExNH0.BeyG9GN3Y25A3ckDueGzDrDm6xK1Mb6jhnfSPCycrltcRWz72qbqYcauWAmXbdPUmBxQrUPNJa_L7ELTbpWnWA
Host: localhost:8080

Request Header

Name Description

Username

사용자 아이디

X-AUTH-TOKEN

엑세스 토큰

Response

HTTP/1.1 200 OK

AccessToken Reissue

Request

POST /api/member/auth/token HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 397
Host: localhost:8080

{
  "accessToken" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0NDAiLCJpYXQiOjE2NjM1NzIzMTUsImV4cCI6MTY2MzU3MjMxNX0.7TKUW-d_tWbkDjefpqc6h-mGEJn_iJ1K9TsDHfv3Ovb88FesRBKrHn-ZtXcAUG1xEeNvkLI9v6gtwKo0n3GNPg",
  "refreshToken" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0NDAiLCJpYXQiOjE2NjM1NzIzMTUsImV4cCI6MTY2NDE3NzExNX0.fXPxeH86Whq-5bqUITSq34z3LBFR6hcg-u2B3tnxkiBFgUDPx53DvCJrCQXbmJ3fY3M6eikRH72ph851Jw4X8w"
}

Request Field

Path Type Description

accessToken

String

만료된 엑세스 토큰

refreshToken

String

만료되지않는 리프레시 토큰

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 397

{
  "accessToken" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0NDAiLCJpYXQiOjE2NjM1NzIzMTUsImV4cCI6MTY2MzU4MzExNX0.V2pw_YS-H1B40HAKJJhO7wvUw1Lwps4rbc8KQTZvEIk46M9--5O6-oA8R_X_JQaPapbLSkEq5hFbawSzEU-SlQ",
  "refreshToken" : "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0NDAiLCJpYXQiOjE2NjM1NzIzMTUsImV4cCI6MTY2NDE3NzExNX0.fXPxeH86Whq-5bqUITSq34z3LBFR6hcg-u2B3tnxkiBFgUDPx53DvCJrCQXbmJ3fY3M6eikRH72ph851Jw4X8w"
}

Response Field

Path Type Description

accessToken

String

새로운 엑세스 토큰

refreshToken

String

기존 리프레시 토큰

AdminPost

AdminPost-Create

Request

$ curl 'http://localhost:8080/api/admin/notice/new' -i -X POST \
    -H 'Content-Type: multipart/form-data;charset=UTF-8' \
    -H 'Accept: application/json' \
    -F 'postSaveRequestDto=@postSaveRequestDto;type=application/json' \
    -F 'file=@file.png;type=image/png'

Request Part

Part Description

file

업로드 하고싶은 파일

postSaveRequestDto

제목, 내용

Request Path Parameter

Table 2. /api/admin/{post}/new
Parameter Description

post

관리자 게시판 카테고리

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 13

Notice Create

AdminPost-Update

Request

$ curl 'http://localhost:8080/api/admin/notice/29' -i -X POST \
    -H 'Content-Type: multipart/form-data;charset=UTF-8' \
    -H 'Accept: application/json' \
    -F 'postUpdateRequestDto=@postUpdateRequestDto;type=application/json' \
    -F 'file=@file.png;type=image/png'

Request Part

Part Description

file

업로드 하고싶은 파일

postUpdateRequestDto

제목, 내용

Request Path Parameter

Table 3. /api/admin/{post}/{postId}
Parameter Description

post

관리자 게시판 카테고리

postId

수정하려는 게시글 아이디

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 13

Notice Update

AdminPost-Delete

Request

$ curl 'http://localhost:8080/api/admin' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Post: notice' \
    -H 'Post-Id: 28' \
    -H 'Accept: application/json'

Request Header

Name Description

Post

관리자 게시판 카테고리

Post-Id

삭제하려는 게시글 아이디

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 13

Notice Delete

AdminPost-Info

Request

GET /api/admin/notice/25 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Request Path Parameter

Table 4. /api/admin/{post}/{postId}
Parameter Description

post

관리자 게시판 카테고리

postId

조회하려는 게시글 아이디

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 148

{
  "postId" : 25,
  "title" : "test",
  "content" : "test",
  "author" : "숲속의냉면",
  "files" : [ ],
  "commentInfoResponseDtoList" : [ ]
}

Response Field

Path Type Description

postId

Number

조회한 게시글 아이디

title

String

조회한 게시글 제목

content

String

조회한 게시글 내용

author

String

조회한 게시글 작성자

files

Array

조회한 게시글 첨부파일

commentInfoResponseDtoList

Array

조회한 게시글 댓글들

AdminPost-List

Request

GET /api/admin/notice?title=&content= HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Request Parameter

Parameter Description

title

검색하려는 게시글 제목 : Null허용

content

검색하려는 게시글 내용 : Null허용

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1835

{
  "totalPageCount" : 1,
  "currentPageNum" : 0,
  "totalElementCount" : 11,
  "currentPageElementCount" : 11,
  "simplePostDtoList" : [ {
    "postId" : 26,
    "title" : "test",
    "content" : "test",
    "author" : "숲속의냉면",
    "createdDate" : "2022-09-19T16:25:18.416475"
  }, {
    "postId" : 10,
    "title" : "title10",
    "content" : "content10",
    "author" : "nickname4",
    "createdDate" : "2022-09-19T16:25:01.721139"
  }, {
    "postId" : 9,
    "title" : "title9",
    "content" : "content9",
    "author" : "nickname4",
    "createdDate" : "2022-09-19T16:25:01.716050"
  }, {
    "postId" : 8,
    "title" : "title8",
    "content" : "content8",
    "author" : "nickname2",
    "createdDate" : "2022-09-19T16:25:01.712701"
  }, {
    "postId" : 7,
    "title" : "title7",
    "content" : "content7",
    "author" : "nickname5",
    "createdDate" : "2022-09-19T16:25:01.710750"
  }, {
    "postId" : 6,
    "title" : "title6",
    "content" : "content6",
    "author" : "nickname3",
    "createdDate" : "2022-09-19T16:25:01.708228"
  }, {
    "postId" : 5,
    "title" : "title5",
    "content" : "content5",
    "author" : "nickname4",
    "createdDate" : "2022-09-19T16:25:01.703"
  }, {
    "postId" : 4,
    "title" : "title4",
    "content" : "content4",
    "author" : "nickname1",
    "createdDate" : "2022-09-19T16:25:01.699388"
  }, {
    "postId" : 3,
    "title" : "title3",
    "content" : "content3",
    "author" : "nickname5",
    "createdDate" : "2022-09-19T16:25:01.694002"
  }, {
    "postId" : 2,
    "title" : "title2",
    "content" : "content2",
    "author" : "nickname5",
    "createdDate" : "2022-09-19T16:25:01.689564"
  }, {
    "postId" : 1,
    "title" : "title1",
    "content" : "content1",
    "author" : "nickname2",
    "createdDate" : "2022-09-19T16:25:01.677490"
  } ]
}

Response Field

Path Type Description

totalPageCount

Number

전체 페이지 수

currentPageNum

Number

현재 페이지 번호

totalElementCount

Number

전체 게시글 갯수

currentPageElementCount

Number

현재 페이지에 존재하는 게시글 수

simplePostDtoList

Array

간단한 게시글 정보

simplePostDtoList.[].postId

Number

게시글 아이디

simplePostDtoList.[].title

String

게시글 제목

simplePostDtoList.[].content

String

게시글 내용

simplePostDtoList.[].author

String

게시글 작성자

simplePostDtoList.[].createdDate

String

게시글 생성시간

StudyPost

StudyPost-Create

Request

$ curl 'http://localhost:8080/api/study/test/post/homework' -i -X POST \
    -H 'Content-Type: multipart/form-data;charset=UTF-8' \
    -H 'Accept: application/json' \
    -F 'postSaveRequestDto=@postSaveRequestDto;type=application/json' \
    -F 'file=@file.png;type=image/png'

Request Part

Part Description

file

업로드 하고싶은 파일

postSaveRequestDto

제목, 내용

Request Path Parameter

Table 5. /api/study/{studyUrl}/post/{post}
Parameter Description

studyUrl

스터디 고유 주소

post

스터디 게시판 카테고리

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 181

{
  "response" : {
    "title" : "studyPost",
    "content" : "studyPost",
    "author" : "swchoi1997",
    "files" : [ ],
    "postEnum" : "STUDY_HOMEWORK"
  },
  "status" : "OK"
}

Response Field

Path Type Description

response

Object

응답 내용

response.title

String

제목

response.content

String

내용

response.author

String

작성자

response.files

Array

첨부파일

response.postEnum

String

카테고리

status

String

상태코드

StudyPost-Update

Request

$ curl 'http://localhost:8080/api/study/test/post/homework/2' -i -X POST \
    -H 'Content-Type: multipart/form-data;charset=UTF-8' \
    -H 'Accept: application/json' \
    -F 'postUpdateRequestDto={
  "title": "test123",
  "content": "test123"
};type=application/json' \
    -F 'file=@file.png;type=image/png'

Request Part

Part Description

file

업로드 하고싶은 파일

postUpdateRequestDto

제목, 내용

Request Path Parameter

Table 6. /api/study/{studyUrl}/post/{post}/{postId}
Parameter Description

studyUrl

스터디 고유 주소

post

스터디 게시판 카테고리

postId

스터디 게시판 게시글 아이디

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 177

{
  "response" : {
    "title" : "test123",
    "content" : "test123",
    "author" : "swchoi1997",
    "files" : [ ],
    "postEnum" : "STUDY_HOMEWORK"
  },
  "status" : "OK"
}

Response Field

Path Type Description

response

Object

응답 내용

response.title

String

제목

response.content

String

내용

response.author

String

작성자

response.files

Array

첨부파일

response.postEnum

String

카테고리

status

String

상태코드

StudyPost-Delete

Request

$ curl 'http://localhost:8080/api/study/test/post/homework' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Post-Id: 1' \
    -H 'Accept: application/json'

Request Header

Name Description

Post-Id

삭제하려는 게시글 아이디

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 78

{"headers":{},"body":"delete success","statusCodeValue":200,"statusCode":"OK"}

StudyPost-Info

Request

GET /api/study/test/post/homework/3 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Request Path Parameter

Table 7. /api/study/{studyUrl}/post/{post}/{postId}
Parameter Description

studyUrl

스터디 고유 주소

post

스터디 게시판 카테고리

postId

조회하려는 게시글 아이디

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 199

{
  "response" : {
    "postId" : 3,
    "title" : "test",
    "content" : "test",
    "author" : "숲속의냉면",
    "files" : [ ],
    "commentInfoResponseDtoList" : [ ]
  },
  "status" : "OK"
}

Response Field

Path Type Description

response

Object

응답 내용

response.postId

Number

조회한 게시글 아이디

response.title

String

조회한 게시글 제목

response.content

String

조회한 게시글 내용

response.author

String

조회한 게시글 작성자

response.files

Array

조회한 게시글 첨부파일

response.commentInfoResponseDtoList

Array

조회한 게시글 댓글들

status

String

상태코드

StudyPost-List

Request

GET /api/study/test/post/homework?title=&content= HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

Request Parameter

Parameter Description

title

검색하려는 게시글 제목 : Null허용

content

검색하려는 게시글 내용 : Null허용

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 354

{
  "response" : {
    "totalPageCount" : 1,
    "currentPageNum" : 0,
    "totalElementCount" : 1,
    "currentPageElementCount" : 1,
    "simplePostDtoList" : [ {
      "postId" : 4,
      "title" : "test",
      "content" : "test",
      "author" : "숲속의냉면",
      "createdDate" : "2022-09-19T16:25:20.117579"
    } ]
  },
  "status" : "OK"
}

Response Field

Path Type Description

response

Object

응답 내용

response.totalPageCount

Number

전체 페이지 수

response.currentPageNum

Number

현재 페이지 번호

response.totalElementCount

Number

전체 게시글 갯수

response.currentPageElementCount

Number

현재 페이지에 존재하는 게시글 수

response.simplePostDtoList

Array

간단한 게시글 정보

response.simplePostDtoList.[].postId

Number

게시글 아이디

response.simplePostDtoList.[].title

String

게시글 제목

response.simplePostDtoList.[].content

String

게시글 내용

response.simplePostDtoList.[].author

String

게시글 작성자

response.simplePostDtoList.[].createdDate

String

게시글 생성시간

status

String

상태코드

Profile

update profile

request

PUT /api/profile HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 146
Host: localhost:8080

{
  "nickname" : "test nickname",
  "bio" : "test bio",
  "profileImageUrl" : "test profile image",
  "subjectList" : [ "ENGLISH", "CHEMISTRY" ]
}

request fields

Path Type Description

nickname

String

회원의 nickname

bio

String

회원의 자기소개

profileImageUrl

String

회원의 profile Image

subjectList

Array

회원의 subject List

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 9

update Ok

get profile

request

GET /api/profile/1 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

request path parameters

Table 8. /api/profile/{profileId}
Parameter Description

profileId

profile의 id

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 216

{
  "username" : "test username",
  "email" : "test@godtudy.com",
  "nickname" : "test nickname",
  "bio" : "test bio",
  "profileImageUrl" : "test profile image",
  "subjectList" : [ "BIOLOGY", "KOREAN_LANGUAGE" ]
}

response fields

Path Type Description

username

String

회원의 username

email

String

회원의 email

nickname

String

회원의 nickname

bio

String

회원의 소개말

profileImageUrl

String

회원의 profileImageUrl

subjectList

Array

회원의 subjectList

get profile list

request

GET /api/profile/list?username=&role=STUDENT&name= HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

request parameters

Parameter Description

username

username

name

name

role

role

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 370

{
  "totalPageCount" : 1,
  "currentPageNumber" : 0,
  "totalElementCount" : 1,
  "currentPageElementCount" : 1,
  "profileDtoList" : [ {
    "username" : "test username",
    "email" : "test@godtudy.com",
    "nickname" : "test nickname",
    "bio" : "test bio",
    "profileImageUrl" : "test profile image",
    "subjectList" : [ "BIOLOGY", "KOREAN_LANGUAGE" ]
  } ]
}

response fields

Path Type Description

username

String

회원의 username

email

String

회원의 email

nickname

String

회원의 nickname

bio

String

회원의 소개말

profileImageUrl

String

회원의 profileImageUrl

subjectList

Array

회원의 subjectList

password update

request

POST /api/profile/password HTTP/1.1
Content-Type: application/json
X-AUTH-TOKEN: jwtToken
Accept: application/json
Content-Length: 79
Host: localhost:8080

{
  "newPassword" : "newpassword1@",
  "newPasswordConfirm" : "newpassword1@"
}

request header

Name Description

X-AUTH-TOKEN

access token

request body

{
  "newPassword" : "newpassword1@",
  "newPasswordConfirm" : "newpassword1@"
}

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 15

Password Update

Study

create study

request

POST /api/study HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 171
Host: localhost:8080

{
  "name" : "국어",
  "teacherId" : 1,
  "studentId" : 2,
  "url" : "korean-study",
  "subject" : "국어",
  "shortDescription" : "국어 문법 스터디 입니다"
}

request fields

Path Type Description

name

String

이름

url

String

스터디 url

subject

String

과목

shortDescription

String

스터디 소개

teacherId

Number

선생님 id

studentId

Number

학생 id

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 345

{
  "name" : "국어 스터디",
  "url" : "korean-study",
  "subject" : "국어",
  "teacher" : {
    "id" : 1,
    "name" : "선생님 name",
    "username" : "선생님 username"
  },
  "student" : {
    "id" : 2,
    "name" : "학생 name",
    "username" : "학생 username"
  },
  "shortDescription" : "국어 문법 스터디 입니다"
}

response fields

Path Type Description

name

String

이름

url

String

스터디 url

subject

String

과목

shortDescription

String

스터디 소개

teacher.id

Number

선생님 ID

teacher.name

String

선생님 이름

teacher.username

String

선생님 닉네임

student.id

Number

학생 ID

student.name

String

학생 이름

student.username

String

학생 닉네임

update study

request

PUT /api/study/korean-study HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 126
Host: localhost:8080

{
  "name" : "국어 스터디",
  "shortDescription" : "국어 문법 스터디에서 다른 스터디로 변경할게요!"
}

request path parameters

Table 9. /api/study/{studyUrl}
Parameter Description

studyUrl

스터디 url

request fields

Path Type Description

name

String

스터디 이름

shortDescription

String

스터디 소개

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 345

{
  "name" : "국어 스터디",
  "url" : "korean-study",
  "subject" : "국어",
  "teacher" : {
    "id" : 1,
    "name" : "선생님 name",
    "username" : "선생님 username"
  },
  "student" : {
    "id" : 2,
    "name" : "학생 name",
    "username" : "학생 username"
  },
  "shortDescription" : "국어 문법 스터디입니다."
}

response fields

Path Type Description

name

String

이름

url

String

스터디 url

subject

String

과목

shortDescription

String

스터디 소개

teacher.id

Number

선생님 ID

teacher.name

String

선생님 이름

teacher.username

String

선생님 닉네임

student.id

Number

학생 ID

student.name

String

학생 이름

student.username

String

학생 닉네임

get study

request

GET /api/study/korean-study HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

request path parameters

Table 10. /api/study/{studyUrl}
Parameter Description

studyUrl

스터디 url

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 345

{
  "name" : "국어 스터디",
  "url" : "korean-study",
  "subject" : "국어",
  "teacher" : {
    "id" : 1,
    "name" : "선생님 name",
    "username" : "선생님 username"
  },
  "student" : {
    "id" : 2,
    "name" : "학생 name",
    "username" : "학생 username"
  },
  "shortDescription" : "국어 문법 스터디입니다."
}

response fields

Path Type Description

name

String

이름

url

String

스터디 url

subject

String

과목

shortDescription

String

스터디 소개

teacher.id

Number

선생님 ID

teacher.name

String

선생님 이름

teacher.username

String

선생님 닉네임

student.id

Number

학생 ID

student.name

String

학생 이름

student.username

String

학생 닉네임

delete study

request

DELETE /api/study HTTP/1.1
Content-Type: application/json
Study-Url: korean-study
Accept: application/json
Host: localhost:8080

request headers

Name Description

Study-Url

스터디 url

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 12

korean-study

Todo

create todo

request

POST /api/study/new-study/todo HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 95
Host: localhost:8080

{
  "title" : "todo title",
  "content" : "todo content",
  "endDate" : "1997-02-12T00:00:00"
}

request path parameters

Table 11. /api/study/{studyUrl}/todo
Parameter Description

studyUrl

스터디 url

request fields

Path Type Description

title

String

todo 제목

content

String

todo 내용

endDate

String

마감기한

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 135

{
  "id" : 1,
  "title" : "todo title",
  "content" : "todo content",
  "endDate" : [ 2020, 2, 12, 0, 0 ],
  "studyUrl" : "study Url"
}

response fields

Path Type Description

id

Number

todo id

title

String

todo 제목

content

String

todo 내용

endDate

Array

todo 마감기한

studyUrl

String

스터디 url

update todo

request

PUT /api/study/new-study/todo/1 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 113
Host: localhost:8080

{
  "title" : "todo title - 수정",
  "content" : "todo content - 수정",
  "endDate" : "1997-02-12T00:00:00"
}

request path parameters

Table 12. /api/study/{studyUrl}/todo/{todoId}
Parameter Description

studyUrl

스터디 url

todoId

todo id

request fields

Path Type Description

title

String

todo 제목

content

String

todo 내용

endDate

String

마감기한

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 135

{
  "id" : 1,
  "title" : "todo title",
  "content" : "todo content",
  "endDate" : [ 2020, 2, 12, 0, 0 ],
  "studyUrl" : "study Url"
}

response fields

Path Type Description

id

Number

todo id

title

String

todo 제목

content

String

todo 내용

endDate

Array

todo 마감기한

studyUrl

String

스터디 url

get todo

request

GET /api/study/new-study/todo/1 HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

request path parameters

Table 13. /api/study/{studyUrl}/todo/{todoId}
Parameter Description

studyUrl

스터디 url

todoId

todo id

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 135

{
  "id" : 1,
  "title" : "todo title",
  "content" : "todo content",
  "endDate" : [ 2020, 2, 12, 0, 0 ],
  "studyUrl" : "study Url"
}

response fields

Path Type Description

id

Number

todo id

title

String

todo 제목

content

String

todo 내용

endDate

Array

todo 마감기한

studyUrl

String

스터디 url

get todo list

request

GET /api/study/new-study/todo HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: localhost:8080

request path parameters

Table 14. /api/study/{studyUrl}/todo
Parameter Description

studyUrl

스터디 url

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 284

{
  "totalPageCount" : 1,
  "currentPageNumber" : 0,
  "totalElementCount" : 1,
  "currentPageElementCount" : 1,
  "todoDtoList" : [ {
    "id" : 1,
    "title" : "todo title",
    "content" : "todo content",
    "endDate" : [ 2020, 2, 12, 0, 0 ],
    "studyUrl" : "study Url"
  } ]
}

response fields

Path Type Description

totalPageCount

Number

전체 page의 수

currentPageNumber

Number

현재 page의 수

totalElementCount

Number

전체 content의 개수

currentPageElementCount

Number

한 페이지당 content의 개수

todoDtoList.[].id

Number

todo id

todoDtoList.[].title

String

todo 제목

todoDtoList.[].content

String

todo 내용

todoDtoList.[].endDate

Array

todo 마감기한

todoDtoList.[].studyUrl

String

스터디 url

delete todo

request

DELETE /api/study/new-study/todo HTTP/1.1
Content-Type: application/json
Todo-Id: 1
Accept: application/json
Host: localhost:8080

request headers

Name Description

Todo-Id

todo id

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1

1

Comment

create comment

request

POST /api/comment/notice/11/new HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 27
Host: localhost:8080

{
  "content" : "test123"
}

request path parameters

Table 15. /api/comment/{postType}/{postId}/new
Parameter Description

postType

게시물 카테고리

postId

댓글을 작성하려는 게시물 아이디

request fields

Path Type Description

content

String

댓글 내용

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 175

{
  "response" : {
    "id" : 111,
    "content" : "test123",
    "username" : "swchoi1997",
    "postKind" : "notice",
    "message" : "Comment Save"
  },
  "status" : "OK"
}

response fields

Path Type Description

response

Object

응답내용

response.id

Number

댓글 아이디

response.username

String

댓글 작성자 아이디

response.content

String

댓글 내용

response.postKind

String

해당 댓글이 있는 게시물의 카테고리

response.message

String

응답 메세지

status

String

상태코드

create child comment

request

POST /api/comment/notice/12/112/new HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 27
Host: localhost:8080

{
  "content" : "test123"
}

request path parameters

Table 16. /api/comment/{postType}/{postId}/{parentId}/new
Parameter Description

postType

게시물 카테고리

postId

댓글을 작성하려는 게시물 아이디

parentId

부모 댓글 아이디

request fields

Path Type Description

content

String

댓글 내용

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 177

{
  "response" : {
    "id" : 113,
    "content" : "test123",
    "username" : "swchoi1997",
    "postKind" : "notice",
    "message" : "ReComment Save"
  },
  "status" : "OK"
}

response fields

Path Type Description

response

Object

응답내용

response.id

Number

댓글 아이디

response.username

String

댓글 작성자 아이디

response.content

String

댓글 내용

response.postKind

String

해당 댓글이 있는 게시물의 카테고리

response.message

String

응답 메세지

status

String

상태코드

update comment

request

POST /api/comment/notice/13/114 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 27
Host: localhost:8080

{
  "content" : "test321"
}

request path parameters

Table 17. /api/comment/{postType}/{postId}/{commentId}
Parameter Description

postType

게시물 카테고리

postId

댓글을 작성하려는 게시물 아이디

commentId

댓글 아이디

request fields

Path Type Description

content

String

댓글 내용

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 178

{
  "response" : {
    "id" : 114,
    "content" : "test321",
    "username" : "swchoi1997",
    "postKind" : "notice",
    "message" : "update Complete"
  },
  "status" : "OK"
}

response fields

Path Type Description

response

Object

응답내용

response.id

Number

댓글 아이디

response.username

String

댓글 작성자 아이디

response.content

String

댓글 내용

response.postKind

String

해당 댓글이 있는 게시물의 카테고리

response.message

String

응답 메세지

status

String

상태코드

delete comment

request

DELETE /api/comment/notice HTTP/1.1
Content-Type: application/json
Post-Id: 14
Comment-Id: 115
Accept: application/json
Host: localhost:8080

request path parameters

Table 18. /api/comment/{postType}
Parameter Description

postType

해당 댓글이 존재하는 게시글의 카테고리

request headers

Name Description

Post-Id

해당 댓글이 존재하는 게시글 아이디

Comment-Id

해당 댓글 아이디

response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 15

Delete Complete