-
Notifications
You must be signed in to change notification settings - Fork 1
API
{
Authorization: `Bearer ${accessToken}`
}
GET 토큰 재발급
/token
Response
201: OK
{
success: true,
accessToken: "accessToken",
}
Response
403: Error
{
success: false,
message: "유효하지 않은 토큰입니다."
}
Response
400: Error
{
success: false,
message: "존재하지 않거나 탈퇴한 사용자입니다.",
}
Response
401: Error
{
success: false,
message: "토큰이 존재하지 않습니다. 다시 로그인해주세요."
}
Response
403: Error
{
success: false,
message: "토큰이 만료되었거나 유효하지 않은 토큰입니다."
}
POST 로그인 버튼 클릭
/login
description
: userId와 password로 로그인하고 accessToken과 refreshToken return합니다.
Request
Body
{
userId: "test1",
password: "test1!"
}
Response
200: OK
id: "userId",
name: "nickname",
accessToken: "accessToken",
refreshToken: "refreshToken",
imageUrl: "imageUrl",
success: true,
message: "...",
Response
401: Error
{
success: false,
message: "아이디가 존재하지 않습니다.",
}
{
success: false,
message: "비밀번호가 일치하지 않습니다."
}
{
success: false,
message: "이미 탈퇴한 회원입니다."
}
GET 로그아웃 버튼 클릭
/logout
description
: 버튼 클릭 시 쿠키를 지우고 로그아웃 합니다.
Response
200 : OK
{
success: true,
}
POST 회원가입 버튼 클릭
/signup
description
: 회원가입의 성공시 “/” 으로 Redirect 합니다.
Request
Body
{
userId: "test1",
email: "[email protected]",
nickname: "test",
birthday: "2022-09-22",
password: "test1234!",
}
Response
201: OK
{
success: true,
message: "회원가입에 성공했습니다."
}
DELETE 회원탈퇴 버튼 클릭
/my/user-delete
description
: 회원탈퇴 성공시 “/” 으로 Redirect 합니다.
Request
Body
{
userId: 'email1234',
}
Response
200: OK
{
success: true,
message: "회원 탈퇴가 완료되었으며, 7일 뒤 삭제될 예정입니다."
}
Response
400: Error
{
success: false,
message: "이미 탈퇴를 요청한 아이디입니다."
}
POST 게시글 작성
/post/create
Request
Body
{
title: "postTitle",
hashtag: ["tag1", "tag2"],
targetAge: 20,
content: {para: "content", img: ["imgUrl1", imgUr12]}
}
Response
201: OK
{
success: true,
message: "새로운 게시글 작성이 완료되었습니다.",
}
Response
400: Error
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다.",
}
{
success: false,
message: "title이 undefined입니다.",
}
{
success: false,
message: "hashtag가 undefined입니다.",
}
{
success: false,
message: "para가 undefined입니다.",
}
{
success: false,
message: "해당 연령대는 존재하지 않습니다."
}
PUT 게시글 수정
/post/:post_id
Request
body
{
title: "title",
content: "content",
hashtag: ["tag1", "tag2"],
tagetAge: 20,
}
Response
201: OK
{
success: true,
message: "게시글 수정이 완료되었습니다.",
}
Response
400: Error
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다.",
}
{
success: false,
message: "title이 undefined입니다.",
}
{
success: false,
message: "hashtag가 undefined입니다.",
}
{
success: false,
message: "para가 undefined입니다.",
}
{
success: false,
message: "해당 연령대는 존재하지 않습니다."
}
DELETE 게시글 삭제
/post/:post_id
Response
200: OK
{
success: true,
message: "게시글 삭제가 완료되었습니다.
}
GET 게시글 목록 읽기 및 검색
/post/target?age=20&page=1&filter=newer&tag=kaka&keyword=abc
Response
200: OK
{
data: [{
content: "<p>aaaaaa</p>",
createAt: "2022-09-22T02:31:28.021Z",
hashtag: ["sdad"],
meta: { views: 14, likes: 0, bookmarks: [], pinnedCmnt: null, answer: false },
owner: {
_id: "632bbf89b4a156b3ed2f79e0",
nickname: "user1234",
userId: "user123",
},
targetAge: 20,
title: "232323",
updateAt: "2022-09-22T02:31:28.021Z",
_id: "632bc900b4a156b3ed2f7a28"
}],
page: 1,
lastPage: true,
}
GET 게시글 상세
/post/:post_id
Response
201: OK
{
bookmark: false,
content: "<p>aaaaaaaaaa</p>",
createAt: "2022-09-22T02:31:28.021Z",
hashtag: ["dasdasd"],
like: false,
meta: { views: 14, likes: 0, bookmarks: [], pinnedCmnt: null, answer: false },
owner: {
_id: "632bbf89b4a156b3ed2f79e0",
userId: "user123",
nickname: "user1234",
},
targetAge: 20,
title: "weeweq",
updateAt: "2022-09-22T02:31:28.021Z",
_id: "632bc900b4a156b3ed2f7a28"
}
Response
404: Error
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다.",
}
GET 게시글 좋아요
/post/:post_id/like
Response
200: OK
{
success: true,
message: "좋아요를 눌렀습니다.",
data: { likes: 12 },
}
Response
404: Error
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다.",
}
{
success: false,
message: "이미 좋아요한 게시물입니다.",
}
GET 게시글 좋아요 취소
/post/:post_id/unlike
Response
200: OK
{
success: ture,
message: "좋아요를 취소했습니다.",
data: { likes: 12 },
}
Response
404: Error
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다.",
}
{
success: false,
message: "좋아요를 누르지 않은 게시물입니다.",
}
POST 댓글, 대댓글 작성
/post/comment
Request
Body
// 댓글
{
post_id: "post_id",
content: "댓글내용",
parent_id: null,
}
// 대댓글
{
post_id: "post_id",
content: "댓글내용",
parent_id: "comment_id",
}
Response
200: OK
{
success: true,
comment_id: "comment_id",
message: "댓글 작성을 성공했습니다."
}
Response
400: Error
{
success: false,
message: "postId가 undefined입니다.",
}
{
success: false,
message: "parentId가 undefined입니다.",
}
{
success: false,
message: "content가 undefined입니다.",
}
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다."
}
{
success: false,
message: "존재하지 않는 댓글입니다."
}
GET 댓글 목록 읽기
/post/:id/comments
Response
200: OK
// 댓글이 있을 때
[{
comment_id: "comment_id",
user_id: "user_id",
post_id: "post_id",
content: "댓글 내용",
createAt: "",
parent: null,
comment_like: ture || false,
children: [{
children: [],
complain_count: 0,
createAt: "2022-09-22T09:46:37.145Z",
like_count: 0,
like_users: [],
parent_id: "632bc917b4a156b3ed2f7a3c",
post_id: "632bc900b4a156b3ed2f7a28",
text: "테스트입니다.",
writer: "632bbf89b4a156b3ed2f79e0",
_id: "632c2efd15732edaea69a0d7"
}]
}]
// 댓글이 없을때
[]
Response
400: Error
{
message: "존재하지 않는 게시글입니다.",
}
GET 댓글 읽기
/comment/:id
Response
200: OK
[{
comment_id: "comment_id",
user_id: "user_id",
post_id: "post_id",
content: "댓글 내용",
createAt: "",
parent: null,
comment_like: ture || false,
children: [{
children: [],
complain_count: 0,
createAt: "2022-09-22T09:46:37.145Z",
like_count: 0,
like_users: [],
parent_id: "632bc917b4a156b3ed2f7a3c",
post_id: "632bc900b4a156b3ed2f7a28",
text: "테스트입니다.",
writer: "632bbf89b4a156b3ed2f79e0",
_id: "632c2efd15732edaea69a0d7"
}]
}]
// 댓글이 없을때
[]
Response
400: Error
{
message: "존재하지 않는 게시글입니다."
}
DELETE 댓글 삭제
/comment/:id
Response
200: OK
{
success: true,
message: "댓글이 삭제되었습니다."
}
Response
400: Error
{
success: true,
message: "존재하지 않는 댓글입니다."
}
{
success: true,
message: "commentId가 undefined입니다."
}
GET 댓글 좋아요
/comment/:id/like
Response
200: OK
{
success: true,
message: "좋아요를 눌렀습니다."
}
Response
400: Error
{
success: false,
message: "존재하지 않는 댓글입니다."
}
Response
404: Error
{
success: false,
message: "이미 좋아요한 댓글입니다."
}
GET 댓글 좋아요 취소
/comment/:id/unlike
Request
Body
{
comment_id: "comment_id"
}
Response
200: OK
{
success: true,
message: "좋아요를 취소했습니다."
}
Response
400: Error
{
success: false,
message: "존재하지 않는 댓글입니다.",
}
Response
404: Error
{
success: false,
message: "좋아요를 하지 않은 댓글입니다."
}
GET 댓글 고정
/comment/:id/pinned
Response
200: OK
{
success: true,
message: "댓글 고정을 성공했습니다."
}
Response
400: Error
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다."
}
{
success: false,
message: "고정할 수 없는 댓글입니다."
}
GET 댓글 고정 취소
/comment/:id/unpinned
Response
200: OK
{
success: true,
message: "고정댓글을 해제했습니다."
}
Response
400: Error
{
success: false,
message: "존재하지 않거나 삭제된 게시물입니다.",
}
{
success: false,
message: "고정할 수 없는 댓글입니다.",
}
POST 북마크
/post/:id/bookmark
Response
201: OK
{
success: true,
message: "즐겨찾기 성공했습니다."
}
Response
404: Error
{
success: false,
message: "이미 즐겨찾기한 게시글입니다."
}
DELETE 북마크 취소
/post/:id/unbookmark
Response
201: OK
{
success: true,
message: "즐겨찾기를 취소했습니다."
}
Response
404: Error
{
success: false,
message: "즐겨찾기하지 않은 게시글입니다."
}
PUT 유저 아이디 및 닉네임 수정 후 확인 버튼 클릭
/my/update-user
Request
body
{
userId: "test1",
nicknmae: "test1234",
email: "기존이메일@gamil.com",
}
Response
200: OK
{
id: "test2",
name: "test4232",
email: "기존이메일@gmail.com",
success: true,
message: "성공적으로 유저 정보를 변경하였습니다."
}
Response
409: Error
{
success: false,
message: "이미 존재하는 아이디거나 닉네임입니다."
}
PUT 유저 비밀번호 수정 후 확인 버튼 클릭
/my/changepw
Request
Body
{
userId: "test1234",
oldPassword: "1234",
newPassword: "12345",
newPassword2: "12345",
}
Response
200: OK
{
success: true,
message: "성공적으로 비밀번호를 변경하였습니다."
}
Response
400: Error
// 이전 비밀번호가 다를 경우
{
success: false,
message: "비밀번호를 다시 입력하세요."
}
// 새로운 비밀번호가 서로 맞지 않을 경우
{
success: false,
message: "새 비밀번호와 비밀번호 확인이 일치하지 않습니다.",
}
PUT 유저 프로필 이미지 변경
/my/update-image
Response
Body
{
newData: formdata
}
Response
201: OK
{
success: ture,
message: "성공적으로 프로필 이미지를 변경했습니다.",
imageUrl: "image.url"
}
GET 즐겨찾기한 게시글 불러오기
/my/bookMarkLists
Response
200: OK
{
success: true,
bookmarkLists: {
title: "테스트",
createAt: "2022-09-22T08:58:02.107Z",
updateAt: "2022-09-22T08:58:02.107Z",
targetAge: 10,
owner: { nickename: "한국사" },
meta: { views: 0, likes: 0, bookmarks: [], pinnedCmnt: null, answer: false },
hashtag: ["학업", "성적", "스트레스"],
content: "<p>요즘 학업에 너무 집중이 안 되는데...</p>"
}
}
Response
200: 즐겨찾기한 목록이 없을 경우
{
즐겨찾기한 게시글이 없습니다.
}
GET 내가 작성한 게시글 목록 불러오기
/my/writeLists
Response
200: OK
{
success: true,
writeLists: {
title: "테스트",
createAt: "2022-09-22T08:58:02.107Z",
updateAt: "2022-09-22T08:58:02.107Z",
targetAge: 10,
owner: "632bbf94b4a156b3ed2f79e9",
meta: { views: 0, likes: 0, bookmarks: [], pinnedCmnt: null, answer: false },
hashtag: ["학업", "성적", "스트레스"],
content: "<p>요즘 학업에 너무 집중이 안 되는데...</p>"
}
}
Response
200: 작성한 게시글이 없을 경우
{
작성한 게시글이 없습니다.
}