Skip to content

무드캐처 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