Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

무드캐처 REST API

황수민 edited this page Oct 3, 2022 · 12 revisions

APIS

웰컴메세지 회원가입 및 로그인 유저정보 게시물 아이템 댓글 대댓글 좋아요 알림 무드맵
start auth users posts musinsa comments recomments like notice map
start

start

Descriptions Method URI FE BE
웰컴메세지 GET /api/start 신수정 조권영

웰컴메세지 GET/api/start

Response(success)

{
 status : 200,
 msg:"초기 화면 조회 성공",
 data: {
 startMsg : "무드캐처에 오신  환영합니다!"
 }
}
auth

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 박준수 황수민

회원가입 POST/api/auth/signup

Request parameters

{
 "email" : "test123@naver.com",
 "password" : "qwer123!",
 "confirmPw" : "qwer123!",
 "authNum" : "123456"
}

Response(success)

{
 status : 201,
 msg : "회원가입 성공",
 data : {}
}

이메일 확인 GET/api/auth/checkEmail?email

Request parameters

<req.query>
{
 "email" : "abc@naver.com" 
}

Response(success)

{
 status : 200,
 msg : "이메일 확인 성공",
 data : {}
}

인증번호 발송 POST/api/auth/sendEmail?type

Request parameters

<req.query>
{
 "type" : "signup" 또는 "password"
}
<req.body>
{
 "email" : "abc123@naver.com" 
}

Response(success)

{
 status : 200,
 msg : "인증번호 발송 성공",
 data : {}
}

인증번호 확인 GET/api/auth/check-authnum?email&authNum

Request parameters

<req.query>
{
 "email" : "abc123@naver.com",
 "authNum" : "123456"
}

Response(success)

{
 status : 200
 msg: "인증번호 확인 성공",
 data : {
 result: true
 }
},
{
 status : 400
 msg : "인증번호 확인 실패",
 data : {
 result: false
 }
},

로컬 로그인 POST/api/auth/login

Request parameters

{
 "email" : "test123@naver.com",
 "password" : "1234abc!"
}

Response(success)

{
 status : 200,
 "url" : "브라우저 주소/login/detail?exist=${exist}&token=${token}"
}
  • exist : 기존 회원이면 true, 신규 회원이면 false
  • token : "xxx.yyy.zzz"

소셜 로그인 GET/api/auth/kakao

Response(success)

{
 status : 200,
}
  • "브라우저 주소/login/detail?exist=${exist}&token=${token}"로 리다이렉트
  • exist : 기존 회원이면 true, 신규 회원이면 false
  • token : "xxx.yyy.zzz"

닉네임 확인 GET/api/auth/checkNickname?nickname

Request parameters

<req.query>
{
 "nickname" : "테스트",
}

Response(success)

{
 status : 200,
 msg : "닉네임 확인 성공",
 data : {}
}

닉네임/성별/나이 추가 POST/api/auth/detail

Request parameters

{
 "nickname" : "권영",
 "age" : "20대",
 "gender" : "남자"
}

Response(success)

{
 status : 200,
 msg : "닉네임, 성별, 나이 추가 성공",
 data : {}
}

비밀번호 변경 PUT/api/auth/updatePw?email&authNum

Request parameters

<req.query>
{
 "email" : "abc123@naver.com",
 "authNum" : "123456"
}
<req.body>
{
 "password" : "qwer123!" ,
 "confirmPw" : "qwer123!"
}

Response(success)

{
 status : 200,
 msg : "비밀번호 변경 성공",
 data : {}
}

로그아웃 DELETE/api/auth/logout

Response(success)

{
 status : 200,
 msg : "로그아웃 성공",
 data : {}
}

users

users

Descriptions Method URI FE BE
유저정보 조회 GET /api/users/:userId 박준수 황수민
유저정보 수정 PUT /api/users?nickname&gender&age&original 신수정 황수민
프로필 아이콘 수정 PATCH /api/users 신수정 황수민
회원탈퇴 DELETE /api/users/signout 신수정 이수범

유저정보 조회 GET/api/users/:userId

Request parameters

<req.params>
{
 "userId" : 1
}

Response(success)

{
 status : 200,
 msg : "유저 정보 조회 성공",
 data : {
 userStatus: {
 userId : 99
 nickname : "영수",
 imgUrl : "http://abc",
 grade : "man 1",
 gender : "남자",
 age : "10대",
 repPostId : 3,
 isExistsNotice : true,
 moodPoint : "200"
 },
 }
}

유저정보 수정 PUT/api/users?nickname&gender&age&original

Request parameters

<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

Response(success)

{
 status : 201,
 msg : "유저 정보 변경 성공",
 data : {}
}

프로필 아이콘 수정 PATCH/api/users

Request parameters

<req.body>
{profileIcon : "moody"} 또는
{profileIcon : "woman"} 또는
{profileIcon : "man"},

Response(success)

{
 status : 201,
 msg : "프로필 아이콘 변경 성공",
 data : {
 userStatus: {
 "grade" : "moody 1",
 },
 }
}

회원탈퇴 DELETE/api/users/signout

Response(success)

{
 status : 200,
 msg : "유저 정보 삭제 성공",
 data :{}
}

posts

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/api/posts

Request parameters

{
 post: {
 title : "제목",
 content : "내용",
 
 },
 items: [
 {
 imgUrl : "http://abc",
 brand : "나이키", 
 name : "가나다 운동화" ,
 price : "79000원",
 url : "http://abc"
 } * 여러 
 ]
}

Response(success)

{
 status : 201,
 msg : "게시물 작성 성공",
 data :{
 post: { 
 postId : 1,
 title : "제목",
 content : "내용",
 imgUrl : "http://abc",
 },
 items: [
 {
 imgUrl : "http://abc",
 brand : "나이키", 
 name : "가나다 운동화" ,
 price : "79000원",
 url : "http://abc" 또는 null
 } * 여러 
 ]
 }
}

이미지 업데이트 PUT/api/posts/:postId/image

Request parameters

{
 postImage : FormData
}

Response(success)

{
 status : 201,
 msg : "게시물 작성 성공",
 data :{
 post: { 
 postId : 1,
 title : "제목",
 content : "내용",
 imgUrl : "http://abc",
 },
 items: [
 {
 imgUrl : "http://abc",
 brand : "나이키", 
 name : "가나다 운동화" ,
 price : "79000원",
 url : "http://abc" 또는 null
 } * 여러 
 ]
 }
}

게시물 전체 조회 GET/api/posts/?userId&keyword&sort&type&gender&page&count&order

Request parameters

<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" 
}

Response(success)

{
 status : 200,
 msg : "게시물 전체 조회 성공",
 data : {
 allPosts : [
 {
 postId : 1,
 title : 
 content:
 createdAt:
 likeCount:
 likeStatus:
 userId:
 imgUrl : "http://abc",
 } * 8 
 ],
 }
}

게시물 상세 조회 GET/api/posts/detail/:postId

Request parameters

<req.params>
{
 "postId" : 1
}

Response(success)

{
 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
 } * 여러 
 ], 
 },
}

게시물 수정 PUT/api/posts/:postId

Request parameters

{ 
 post: {
 title : "제목",
 content : "내용",
 
 },
 items: [
 {
 imgUrl : "http://abc",
 brand : "나이키", 
 name : "가나다 운동화",
 price : "79000원",
 url : "http://abc",
 } * 여러 
 ]
}

Response(success)

{
 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
 } * 여러 
 ], 
 },
}

게시물 삭제 DELETE/api/posts/:postId

Request parameters

<req.params>
{
 "postId" : 1
}

Response(success)

{
 status : 200,
 msg : "게시물 삭제 성공",
 data : {}
}

대표 게시물 지정 PATCH/api/posts/:postId

Request parameters

<req.params>
{
 "postId" : 1
}

Response(success)

{
 status : 200,
 msg : "대표 게시물 지정 성공",
 data : {}
}

대표 게시물 조회 GET/api/posts/rep?userId

Request parameters

<req.query>
{
 "userId" : 1
}

Response(success)

{
 status : 200,
 msg : "대표 게시물 조회 성공" 
 data : {
 myRepPost: {
 postId : 1,
 userId : 1,
 imgUrl : "http://abc",
 title : "제목",
 content : "내용",
 likeCount : 10,
 createdAt : "DateForm"
 }
 }
}

인기 게시물 조회 GET/api/posts/popular

Response(success)

{
 status : 200,
 msg:"인기 게시물 조회 성공",
 data: {
 hotPosts:[
 {
 postId : 1,
 imgUrl : "http://abc",
 userId : 1,
 delete : false
 } * 3
 ],
 }
}

명예의 전당 조회 GET/api/posts/honor?page&count

Request parameters

<req.query>
{
 "page" : 1,
 "count" : 8
}

Response(success)

{
 status : 200,
 msg :"명예의 전당 게시물 조회 성공",
 data : {
 honorPosts:[
 {
 postId : 1,
 rank : 1,
 title : 
 content:
 createdAt: 게시물작성일X, hotposts 지정일
 likeCount:
 likeStatus:
 userId:
 imgUrl : "http://abc",
 } * 8
 ],
 }
}

musinsa

musinsa

Descriptions Method URI FE BE
무신사 상품 찾기 GET /api/musinsa/:keyword 박준수 황수민

무신사 상품 찾기 GET/api/musinsa/:keyword

Request parameters

<req.params>
{
 "keyword" : "테스트",
}

Response(success)

{
 status : 200,
 msg : "무신사 아이템 조회 성공",
 data :{
 items: [
 {
 imgUrl : "http://abc",
 brand : "나이키", 
 name : "아디다스 운동화" ,
 price : "79000원 50000원",
 url : "http://abc" 또는 null
 } * 최대 30
 ]
 }
}

comments

comments

Descriptions Method URI FE BE
댓글 작성 POST /api/comments?postId 박준수 이수범
댓글 조회 GET /api/comments?postId 박준수 이수범
댓글 수정 PUT /api/comments/:commentId 박준수 이수범
댓글 삭제 DELETE /api/comments/:commentId 박준수 이수범

댓글 작성 POST/api/comments?postId

Request parameters

<req.params>
{
 "postId" : 1,
}
<req.body>
{
 "content" : "댓글입니다",
}

Response(success)

{
 status : 201,
 msg : "댓글 생성 성공",
 data : {
 comment : { 
 commentId : 1,
 userId : 1, 
 postId: 1,
 imgUrl : "http://abc",
 content : "댓글입니다",
 nickname : "영수",
 grade : "man 4",
 createdAt : "방금전/*분전/*시간전"
 }
 }
}

댓글 조회 GET/api/comments?postId

Request parameters

<req.params>
{
 "postId" : 1,
}

Response(success)

{
 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 : "방금전/*분전/*시간전"
 } * 여러 
 ]
 } * 여러 
 ]
 }
}

댓글 수정 PUT/api/comments/:commentId

Request parameters

<req.params>
{
 "commentId" : 1,
}
<req.body>
{
 "content" : "수정된 댓글",
}

Response(success)

{
 status : 201,
 msg : "댓글 수정 성공",
 data : {
 comment : {
 postId : 99,
 commentId : 1,
 userId : 1, 
 imgUrl : "http://abc",
 content : "수정  댓글입니다",
 nickname : "영수",
 grade : "man 4",
 createdAt : "DateForm"
 }
 }
}

댓글 삭제 DELETE/api/comments/:commentId

Request parameters

<req.params>
{
 "commentId" : 1,
}

Response(success)

{
 status : 200,
 msg : "댓글 삭제 성공",
 data : {}
}

recomments

recomments

Descriptions Method URI FE BE
대댓글 작성 POST /api/recomments?commentId 박준수 이수범
대댓글 수정 PUT /api/recomments/:recommentId 박준수 이수범
대댓글 삭제 DELETE /api/recomments/:recommentId 박준수 이수범

대댓글 작성 POST/api/recomments?commentId

Request parameters

<req.query>
{
 "commentId" : 1,
}
<req.body>
{
 "content" : "댓글입니다",
}

Response(success)

{
 status : 201,
 msg : "대댓글 생성 성공",
 data : {
 recomment : {
 commentId: 99,
 recommentId : 1,
 userId : 1,
 imgUrl : "http://abc", 
 content : "댓글입니다",
 nickname : "영수",
 grade : "man 4",
 createdAt : "DateForm"
 }
 }
}

대댓글 수정 PUT/api/recomments/:recommentId

Request parameters

<req.params>
{
 "recommentId" : 1,
}
<req.body>
{
 "content" : "수정된 댓글",
}

Response(success)

{
 status : 201,
 msg : "대댓글 수정 성공",
 data : {
 recomment : {
 commentId : 1,
 recommentId : 1,
 userId : 1, 
 imgUrl : "http://abc",
 content : "댓글입니다",
 nickname : "영수",
 grade : "man 5",
 createdAt : "DateForm"
 }
 }
}

대댓글 삭제 DELETE/api/recomments/:recommentId

Request parameters

<req.params>
{
 "recommentId" : 1,
}

Response(success)

{
 status : 200,
 msg : "대댓글 삭제 성공",
 data : {}
}

like

like

Descriptions Method URI FE BE
좋아요 등록/취소 PATCH /api/like/?postId 신수정 황수민

좋아요 등록/취소 PATCH/api/like/?postId

Request parameters

<req.query>
{
 "postId" : 1
}

Response(success)

{
 status : 201,
 msg : "좋아요 등록 성공"
 data : {
 "likeCount" : 10 +1
 }
}
또는
{
 status : 201,
 msg : "좋아요 취소 성공"
 data : {
 "likeCount" : 10 -1
 }
}

notice

notice

Descriptions Method URI FE BE
알림 조회 POST /api/notice 신수정 조권영
알림 개별 삭제 DELETE /api/notice/:noticeId 신수정 조권영
알림 전체 삭제 DELETE /api/notice 신수정 조권영

알림 조회 POST/api/notice

Response(success)

{
 status : 200,
 msg : "알림 조회 성공"
 data : {
 notices : [
 {
 msg: "권영님이 게시물에 댓글을 달았습니다!",
 noticeId : 1,
 postId : 1, 
 duplication : 2,
 imgUrl : http:// 해당 게시물의 이미지, 이미지가 필요 없는 알림이라면 default.jpg 기본이미지
 createdAt : 알림의 작성 시간
 } 
 ]
 }
}

알림 개별 삭제 DELETE/api/notice/:noticeId

Request parameters

<req.params>
{
 "noticeId" : 1
}

Response(success)

{
 status : 200
 msg : "알림 개별 삭제 성공"
 data : {}
}

알림 전체 삭제 DELETE/api/notice

Response(success)

{
 status : 200
 msg : "알림 전체 삭제 성공"
 data : {}
}

map

map

Descriptions Method URI FE BE
위치좌표 갱신 PATCH /api/map 박준수 조권영
주변 유저정보 조회 GET /api/map?dist 박준수 조권영
무드 맵 ON/OFF PATCH /api/map/on-off 박준수 황수민

위치좌표 갱신 PATCH/api/map

Request parameters

{
 "latitude" : 33.xxx
 "longitude" : 127.xx
}

Response(success)

{
 status : 200,
 msg : "유저 좌표 업데이트"
 data : {
 "isExistsMap" : true //사용자가 지도의 기능 사용을 허락하는지(위치 좌표 공개 여부)
 }
}

주변 유저정보 조회 GET/api/map?dist

Request parameters

<req.query>
{
 "dist" : 500.0
}

Response(success)

{
 status : 200,
 msg : "주변 사람 유저정보 배열 반환",
 data : {
 aroundUser:[
 {
 userId,
 nickname,
 imgUrl,
 latitude,
 longitude
 }
 ]
 }
}

무드 맵 ON/OFF PATCH/api/map/on-off

Response(success)

{
 status : 201,
 msg : "무드  ON"
 data : {
 "isExistsMap" : true 
 }
}
또는
{
 status : 201,
 msg : "무드  OFF"
 data : {
 "isExistsMap" : false 
 }
}

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /