-
Notifications
You must be signed in to change notification settings - Fork 4
무드캐처 REST API
황수민 edited this page Oct 3, 2022
·
12 revisions
웰컴메세지 | 회원가입 및 로그인 | 유저정보 | 게시물 | 아이템 | 댓글 | 대댓글 | 좋아요 | 알림 | 무드맵 |
---|---|---|---|---|---|---|---|---|---|
start | auth | users | posts | musinsa | comments | recomments | like | notice | map |
start
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
웰컴메세지 | GET | /api/start | 신수정 | 조권영 |
{
status : 200,
msg:”초기 화면 조회 성공”,
data: {
startMsg : “무드캐처에 오신 걸 환영합니다!”
}
}
auth
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
회원가입 | POST | /api/auth/signup | 신수정 | 이수범 |
이메일 확인 | GET | /api/auth/checkEmail?email
|
신수정 | 이수범 |
인증번호 발송 | POST | /api/auth/sendEmail?type
|
신수정 | 이수범 |
인증번호 확인 | GET | /api/auth/check-authnum?email &authNum
|
신수정 | 이수범 |
로컬 로그인 | POST | /api/auth/login | 신수정 | 황수민 |
소셜 로그인 | GET | /api/auth/kakao | 신수정 | 조권영 |
닉네임 확인 | GET | /api/auth/checkNickname?nickname
|
신수정 | 이수범 |
닉네임/성별/나이 추가 | POST | /api/auth/detail | 신수정 | 이수범 |
비밀번호 변경 | PUT | /api/auth/updatePw?email &authNum
|
신수정 | 이수범 |
로그아웃 | DELETE | /api/auth/logout | 박준수 | 황수민 |
{
"email" : “test123@naver.com”,
"password" : “qwer123!”,
"confirmPw" : “qwer123!”,
"authNum" : “123456”
}
{
status : 201,
msg : ”회원가입 성공”,
data : {}
}
<req.query>
{
"email" : “abc@naver.com”
}
{
status : 200,
msg : ”이메일 확인 성공”,
data : {}
}
<req.query>
{
"type" : “signup” 또는 “password”
}
<req.body>
{
"email" : “abc123@naver.com”
}
{
status : 200,
msg : ”인증번호 발송 성공”,
data : {}
}
<req.query>
{
"email" : “abc123@naver.com”,
"authNum" : “123456”
}
{
status : 200
msg: "인증번호 확인 성공",
data : {
result: true
}
},
{
status : 400
msg : "인증번호 확인 실패",
data : {
result: false
}
},
{
"email" : “test123@naver.com”,
"password" : “1234abc!”
}
{
status : 200,
"url" : "브라우저 주소/login/detail?exist=${exist}&token=${token}"
}
- exist : 기존 회원이면 true, 신규 회원이면 false
- token : “xxx.yyy.zzz”
{
status : 200,
}
- "브라우저 주소/login/detail?exist=${exist}&token=${token}"로 리다이렉트
- exist : 기존 회원이면 true, 신규 회원이면 false
- token : “xxx.yyy.zzz”
<req.query>
{
"nickname" : “테스트”,
}
{
status : 200,
msg : ”닉네임 확인 성공”,
data : {}
}
{
"nickname" : ”권영”,
"age" : “20대”,
"gender" : “남자”
}
{
status : 200,
msg : ”닉네임, 성별, 나이 추가 성공”,
data : {}
}
<req.query>
{
"email" : “abc123@naver.com”,
"authNum" : “123456”
}
<req.body>
{
"password" : “qwer123!” ,
"confirmPw" : “qwer123!”
}
{
status : 200,
msg : ”비밀번호 변경 성공”,
data : {}
}
{
status : 200,
msg : ”로그아웃 성공”,
data : {}
}
users
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
유저정보 조회 | GET | /api/users/:userId
|
박준수 | 황수민 |
유저정보 수정 | PUT | /api/users?nickname &gender &age &original
|
신수정 | 황수민 |
프로필 아이콘 수정 | PATCH | /api/users | 신수정 | 황수민 |
회원탈퇴 | DELETE | /api/users/signout | 신수정 | 이수범 |
<req.params>
{
"userId" : 1
}
{
status : 200,
msg : ”유저 정보 조회 성공”,
data : {
userStatus: {
userId : 99
nickname : “영수”,
imgUrl : “http://abc”,
grade : “man 1”,
gender : “남자”,
age : “10대”,
repPostId : 3,
isExistsNotice : true,
moodPoint : “200”
},
}
}
<req.query>
{
"nickname" : “수수”,
"gender" : 남자,
"age" : 20대,
"original" : true //유저 사진 기본 이미지로 변경
}
<req.body>
{
userValue : FormData
}
- req.query의 nickname, age, gender는 필수값이고 original은 선택사항
- req.query의 "original" : true 기재 시 req.body의 userValue는 기재X
{
status : 201,
msg : ”유저 정보 변경 성공”,
data : {}
}
<req.body>
{profileIcon : “moody”} 또는
{profileIcon : “woman”} 또는
{profileIcon : “man”},
{
status : 201,
msg : ”프로필 아이콘 변경 성공”,
data : {
userStatus: {
"grade" : “moody 1”,
},
}
}
{
status : 200,
msg : ”유저 정보 삭제 성공”,
data :{}
}
posts
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
게시물 작성 | POST | /api/posts | 박준수 | 조권영 |
이미지 업데이트 | PUT | /api/posts/:postId /image |
박준수 | 조권영 |
게시물 전체 조회 | GET | /api/posts/?userId &keyword &sort &type &gender &page &count &order
|
박준수,신수정 | 조권영 |
게시물 상세 조회 | GET | /api/posts/detail/:postId
|
박준수 | 황수민 |
게시물 수정 | PUT | /api/posts/:postId
|
박준수 | 조권영 |
게시물 삭제 | DELETE | /api/posts/:postId
|
박준수 | 조권영 |
대표 게시물 지정 | PATCH | /api/posts/:postId
|
박준수 | 조권영 |
대표 게시물 조회 | GET | /api/posts/rep?userId
|
박준수 | 황수민 |
인기 게시물 조회 | GET | /api/posts/popular | 박준수 | 황수민 |
명예의 전당 조회 | GET | /api/posts/honor?page &count
|
신수정 | 황수민 |
{
post: {
title : “제목”,
content : “내용”,
},
items: [
{
imgUrl : “http://abc”,
brand : “나이키”,
name : “가나다 운동화” ,
price : “79000원”,
url : “http://abc”
} * 여러 개
]
}
{
status : 201,
msg : ”게시물 작성 성공”,
data :{
post: {
postId : 1,
title : “제목”,
content : “내용”,
imgUrl : “http://abc”,
},
items: [
{
imgUrl : “http://abc”,
brand : “나이키”,
name : “가나다 운동화” ,
price : “79000원”,
url : “http://abc” 또는 null
} * 여러 개
]
}
}
{
postImage : FormData
}
{
status : 201,
msg : ”게시물 작성 성공”,
data :{
post: {
postId : 1,
title : “제목”,
content : “내용”,
imgUrl : “http://abc”,
},
items: [
{
imgUrl : “http://abc”,
brand : “나이키”,
name : “가나다 운동화” ,
price : “79000원”,
url : “http://abc” 또는 null
} * 여러 개
]
}
}
<req.query>
{
"userId" : 1 또는 null
"keyword" : "가방" 또는 null
"sort" : "title" 또는 "writer" 또는 null
"type" : "my" 또는 "1(userId)" 또는 null
"gender" : "남자" 또는 "여자" 또는 null
"page" // default 1
"count" //default 8
"order" : "recent" 또는 "popular"
}
{
status : 200,
msg : ”게시물 전체 조회 성공”,
data : {
allPosts : [
{
postId : 1,
title :
content:
createdAt:
likeCount:
likeStatus:
userId:
imgUrl : “http://abc”,
} * 8
],
}
}
<req.params>
{
"postId" : 1
}
{
status : 200,
msg : ”게시물 상세 조회 성공”
data : {
post: {
userId : 1,
postId : 1,
title : “제목”,
content : “내용”,
imgUrl : “http://abc”,
likeCount : 10,
createdAt : “DateForm”,
likeStatus : true //게시물을 좋아요 여부
},
items: [
{
imgUrl : “http://abc”,
brand : “나이키”,
name : “가나다 운동화” ,
price : “79000원”,
url : “http://abc” 또는 null
} * 여러 개
],
},
}
{
post: {
title : “제목”,
content : “내용”,
},
items: [
{
imgUrl : “http://abc”,
brand : “나이키”,
name : “가나다 운동화”,
price : “79000원”,
url : “http://abc”,
} * 여러 개
]
}
{
status : 200,
msg : ”게시물 수정 성공”
data : {
post: {
userId : 1,
postId : 1,
title : “제목”,
content : “내용”,
imgUrl : “http://abc”,
likeCount : 10,
createdAt : “DateForm”,
likeStatus : true //게시물을 좋아요 여부
},
items: [
{
imgUrl : “http://abc”,
brand : “나이키”,
name : “가나다 운동화” ,
price : “79000원”,
url : “http://abc” 또는 null
} * 여러 개
],
},
}
<req.params>
{
"postId" : 1
}
{
status : 200,
msg : ”게시물 삭제 성공”,
data : {}
}
<req.params>
{
"postId" : 1
}
{
status : 200,
msg : ”대표 게시물 지정 성공”,
data : {}
}
<req.query>
{
"userId" : 1
}
{
status : 200,
msg : ”대표 게시물 조회 성공”
data : {
myRepPost: {
postId : 1,
userId : 1,
imgUrl : “http://abc”,
title : “제목”,
content : “내용”,
likeCount : 10,
createdAt : “DateForm”
}
}
}
{
status : 200,
msg:”인기 게시물 조회 성공”,
data: {
hotPosts:[
{
postId : 1,
imgUrl : “http://abc”,
userId : 1,
delete : false
} * 3
],
}
}
<req.query>
{
"page" : 1,
"count" : 8
}
{
status : 200,
msg :”명예의 전당 게시물 조회 성공”,
data : {
honorPosts:[
{
postId : 1,
rank : 1,
title :
content:
createdAt: 게시물작성일X, hotposts 지정일
likeCount:
likeStatus:
userId:
imgUrl : “http://abc”,
} * 8
],
}
}
musinsa
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
무신사 상품 찾기 | GET | /api/musinsa/:keyword
|
박준수 | 황수민 |
<req.params>
{
"keyword" : “테스트”,
}
{
status : 200,
msg : ”무신사 아이템 조회 성공”,
data :{
items: [
{
imgUrl : “http://abc”,
brand : “나이키”,
name : “아디다스 운동화” ,
price : “79000원 50000원”,
url : “http://abc” 또는 null
} * 최대 30개
]
}
}
comments
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
댓글 작성 | POST | /api/comments?postId
|
박준수 | 이수범 |
댓글 조회 | GET | /api/comments?postId
|
박준수 | 이수범 |
댓글 수정 | PUT | /api/comments/:commentId
|
박준수 | 이수범 |
댓글 삭제 | DELETE | /api/comments/:commentId
|
박준수 | 이수범 |
<req.params>
{
"postId" : 1,
}
<req.body>
{
"content" : “댓글입니다”,
}
{
status : 201,
msg : ”댓글 생성 성공”,
data : {
comment : {
commentId : 1,
userId : 1,
postId: 1,
imgUrl : “http://abc”,
content : “댓글입니다”,
nickname : “영수”,
grade : ”man 4”,
createdAt : “방금전/*분전/*시간전”
}
}
}
<req.params>
{
"postId" : 1,
}
{
status : 200,
msg : ”댓글 조회성공”
data : {
comments: [
{
userId : 1,
commentId : 2,
content : “좋아요”,
imgUrl : “http://abc”,
nickname : “영수”,
grade : “man 1”,
createdAt : “방금전/*분전/*시간전”,
recommentCount : 1
recomments: [
{
userId : 1,
recommentId : 1,
content : “좋아요”,
imgUrl : “http://abc”,
nickname : “영수”,
grade : “man 1”,
createdAt : “방금전/*분전/*시간전”
} * 여러 개
]
} * 여러 개
]
}
}
<req.params>
{
"commentId" : 1,
}
<req.body>
{
"content" : "수정된 댓글",
}
{
status : 201,
msg : ”댓글 수정 성공”,
data : {
comment : {
postId : 99,
commentId : 1,
userId : 1,
imgUrl : “http://abc”,
content : “수정 된 댓글입니다”,
nickname : “영수”,
grade : ”man 4”,
createdAt : “DateForm”
}
}
}
<req.params>
{
"commentId" : 1,
}
{
status : 200,
msg : ”댓글 삭제 성공”,
data : {}
}
recomments
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
대댓글 작성 | POST | /api/recomments?commentId
|
박준수 | 이수범 |
대댓글 수정 | PUT | /api/recomments/:recommentId
|
박준수 | 이수범 |
대댓글 삭제 | DELETE | /api/recomments/:recommentId
|
박준수 | 이수범 |
<req.query>
{
"commentId" : 1,
}
<req.body>
{
"content" : “댓글입니다”,
}
{
status : 201,
msg : ”대댓글 생성 성공”,
data : {
recomment : {
commentId: 99,
recommentId : 1,
userId : 1,
imgUrl : “http://abc”,
content : “댓글입니다”,
nickname : “영수”,
grade : ”man 4”,
createdAt : “DateForm”
}
}
}
<req.params>
{
"recommentId" : 1,
}
<req.body>
{
"content" : "수정된 댓글",
}
{
status : 201,
msg : ”대댓글 수정 성공”,
data : {
recomment : {
commentId : 1,
recommentId : 1,
userId : 1,
imgUrl : “http://abc”,
content : “댓글입니다”,
nickname : “영수”,
grade : ”man 5”,
createdAt : “DateForm”
}
}
}
<req.params>
{
"recommentId" : 1,
}
{
status : 200,
msg : ”대댓글 삭제 성공”,
data : {}
}
like
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
좋아요 등록/취소 | PATCH | /api/like/?postId
|
신수정 | 황수민 |
<req.query>
{
"postId" : 1
}
{
status : 201,
msg : ”좋아요 등록 성공”
data : {
"likeCount" : 10 +1
}
}
또는
{
status : 201,
msg : ”좋아요 취소 성공”
data : {
"likeCount" : 10 -1
}
}
notice
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
알림 조회 | POST | /api/notice | 신수정 | 조권영 |
알림 개별 삭제 | DELETE | /api/notice/:noticeId
|
신수정 | 조권영 |
알림 전체 삭제 | DELETE | /api/notice | 신수정 | 조권영 |
{
status : 200,
msg : ”알림 조회 성공”
data : {
notices : [
{
msg: “권영님이 게시물에 댓글을 달았습니다!”,
noticeId : 1,
postId : 1,
duplication : 2,
imgUrl : http:// 해당 게시물의 이미지, 이미지가 필요 없는 알림이라면 default.jpg 기본이미지
createdAt : 알림의 작성 시간
}
]
}
}
<req.params>
{
"noticeId" : 1
}
{
status : 200
msg : ”알림 개별 삭제 성공”
data : {}
}
{
status : 200
msg : ”알림 전체 삭제 성공”
data : {}
}
map
Descriptions | Method | URI | FE | BE |
---|---|---|---|---|
위치좌표 갱신 | PATCH | /api/map | 박준수 | 조권영 |
주변 유저정보 조회 | GET | /api/map?dist
|
박준수 | 조권영 |
무드 맵 ON/OFF | PATCH | /api/map/on-off | 박준수 | 황수민 |
{
"latitude" : 33.xxx
"longitude" : 127.xx
}
{
status : 200,
msg : “유저 좌표 업데이트”
data : {
"isExistsMap" : true //사용자가 지도의 기능 사용을 허락하는지(위치 좌표 공개 여부)
}
}
<req.query>
{
"dist" : 500.0
}
{
status : 200,
msg : “주변 사람 유저정보 배열 반환”,
data : {
aroundUser:[
{
userId,
nickname,
imgUrl,
latitude,
longitude
}
]
}
}
{
status : 201,
msg : “무드 맵 ON”
data : {
"isExistsMap" : true
}
}
또는
{
status : 201,
msg : “무드 맵 OFF”
data : {
"isExistsMap" : false
}
}