///
Search
Duplicate

API 명세서 (1)

Search
User
10
도메인
진행상황
method
기능
URL
request
response
담당자
User
완료
POST
/api/v2/users/signup
{ "email" : "String", "password" : "String", "passwordCheck" : "String" } { "email" : "String", "password" : "Sting", "passwordCheck" : "String", "admin":true, "adminToken":"String"}
{ "message": "회원 가입 완료” } { ”message”:”이미 가입된 이메일입니다.” } { ”message”:”관리자 인증번호가 틀렸습니다.” } { ”message”:”비밀번호와 비밀번호확인이 일치하지 않습니다.” }
User
완료
POST
/api/v2/users/login
{ "email" : "String", "password" : "String" }
{ "message": "로그인 완료” } { ”message”:”해당 회원을 찾을 수 없습니다.” } { ”message”:”차단된 유저입니다.” } { ”message”:”패스워드를 확인해 주세요” }
User
완료
POST
/api/v2/users/logout
{ "email" : "String", "password" : "String" }
{ "message": "로그아웃 완료” }
User
완료
GET
/api/v2/users/{userId}
{ "id": “Long”, "nickname": "String", "email": "String", "description": “String”, "location": “String”, "phone": “String”, ”score”:”Double”, ”profileImgagePathUrl”:”String” } { ”message”:”해당 회원을 찾을 수 없습니다.” }
User
완료
GET
/api/v2/users
{ "id": “Long”, "nickname": "String", "email": "String", "description": “String”, "location": “String”, "phone": “String”, ”score”:”Double”, ”profileImgagePathUrl”:”String” } { ”message”:”해당 회원을 찾을 수 없습니다.” }
User
완료
PUT
/api/v2/users/{usersId}
{ "nickname": "String", "email": "String", "description": “String”, "location": “String”, "phone": “String”, ”score”:”Double”, ”profileImgagePathUrl”:”String” }
{ "message": "수정 완료” } { ”message”:”해당 회원을 찾을 수 없습니다.” } ”message”:”본인만 수정할 수 있습니다.” } { ”message”:”이미 사용중인 닉네임입니다.” } { ”message”:”비밀번호가 일치하지 않습니다.” }
User
완료
PUT
/api/v2/users/password/{userId}
{ ”password”:”String”, "newPassword" : "String", ”newPasswordCheck”:”String” }
{ ”message”:”비밀번호 변경 완료” } { ”message”:”해당 회원을 찾을 수 없습니다.” } { ”message”:”비밀번호가 일치하지 않습니다.” }
User
완료
PUT
/api/v2/users/withdraw
{ "password" : "String", ”passwordCheck”:”String” }
{ "message": "탈퇴 완료” } { ”message”:”패스워드를 확인해주세요.” } { ”message”:”비밀번호와 비밀번호확인이 일치하지 않습니다.” }
User
완료
GET
/api/v2/users/role
UserRoleType
User
완료
GET
/api/v2/users/kakao/callback
{ "id": 1632335751, "properties": { "nickname": "", "profile_image": "http://k.kakaocdn.net/...jpg", "thumbnail_image": "http://k.kakaocdn.net/...jpg" }, "kakao_account": { "profile_needs_agreement": false, "profile": { "nickname": "", "thumbnail_image_url": "http://k.kakaocdn.net/...jpg", "profile_image_url": "http://k.kakaocdn.net/...jpg" }, "has_email": true, "email_needs_agreement": false, "is_email_valid": true, "is_email_verified": true, "email": "" } }
UserReport
1
도메인
진행상황
method
기능
URL
request
response
담당자
UserReport
완료
POST
/api/v2/reports
{ ”userId” : “Long”, “reason” : “String” }
{ "message": "신고가 완료되었습니다.” } { ”message”:”해당 회원을 찾을 수 없습니다.” } { ”message”:”자기 자신은 신고할 수 없습니다.” }
Trade
3
도메인
진행상황
method
기능
URL
request
response
담당자
Trade
완료
POST
/api/v2/trades
{ ”productId” : 1, ”score” : 7 }
{ ”id” : 1, ”seller” : “홍길동”, ”productName” : “자바의 정석”, ”buyer” : “김철수”, ”score” : 10 }
Trade
완료
GET
/api/v2/trades/{tradeId}
{ ”id” : 1, ”seller” : “홍길동”, ”productName” : “자바의 정석”, ”buyer” : “김철수”, ”score” : 10 }
Trade
완료
GET
/api/v2/trades
[{ ”id” : 1, ”seller” : “홍길동”, ”productName” : “자바의 정석”, ”buyer” : “김철수”, ”score” : 10 } { ”id” : 1, ”seller” : “홍길동”, ”productName” : “자바의 정석”, ”buyer” : “김철수”, ”score” : 10 }]
Category
4
도메인
진행상황
method
기능
URL
request
response
담당자
Category
완료
POST
/api/v2/admin/categories
{ ”name” : “String” }
{ ”id”:”Long”, ”name” : “String” } { "message": "해당하는 카테고리가 이미 사용중입니다.." }
Category
완료
GET
/api/v2/categories
[{ "name": "String" }, { "name": "String" }]
Category
완료
PUT
/api/v2/admin/categories/{categoryId}
{ ”name” : “String” }
{ ”id”:”Long”, ”name” : “String” } { "message": "해당하는 카테고리가 이미 사용중입니다.." }
Category
완료
DELETE
/api/v2/admin/categories/{categoryId}
{ "message": "카테고리가 삭제가 완료되었습니다." } { "message": "사용중인 카테고리이기 때문에 삭제할 수 없습니다." }
Product
9
도메인
진행상황
method
기능
URL
request
response
담당자
Product
완료
POST
/api/v2/products
{    "name" : "String", "price" : “Long”, "quantity" : “Long”, "regions" : ["Region", "Region"],  "content" : “String”,     "categoryList" : ["String" , "String"] }
{    "id": Long, "name": "Stirng", "quantity": Long, "price": Long, "regions": ["Region",        "Region"], "finished": boolean, ”content”:”String” "userRes": { ”id”:”Long” , “nickname” : “String”   },  "categoryList": ["Stirng", "String"    ] } { ”message”:”해당 회원을 찾을 수 없습니다.” } { ”message”:”해당하는 상품이 존재하지 않습니다.” }
Product
완료
GET
/api/v2/products
[{    "id": Long, "name": "Stirng", "quantity": Long, "price": Long, "regions": ["Region",        "Region"], "finished": boolean, ”content”:”String” "userRes": { ”id”:”Long” , “nickname” : “String”   },  "categoryList": ["Stirng", "String"    ] }{    "id": Long, "name": "Stirng", "quantity": Long, "price": Long, "regions": ["Region",        "Region"], "finished": boolean, ”content”:”String” "userRes": { ”id”:”Long” , “nickname” : “String”   },  "categoryList": ["Stirng", "String"    ] }]
Product
완료
GET
/api/v2/products/{peoductId}
{    "id": Long, "name": "Stirng", "quantity": Long, "price": Long, "regions": ["Region",        "Region"], "finished": boolean, ”content”:”String” "userRes": { ”id”:”Long” , “nickname” : “String”   },  "categoryList": ["Stirng", "String"    ] } { ”message”:”해당하는 상품이 존재하지 않습니다.” }
Product
완료
PUT
/api/v2/products/{peoductId}
{    "name" : "String", "price" : “Long”, "quantity" : “Long”, "regions" : ["Region", "Region"],  "content" : “String”, ”finished”:”boolean” "categoryList" : ["String" , "String"] }
{    "id": Long, "name": "Stirng", "quantity": Long, "price": Long, "regions": ["Region",        "Region"], "finished": boolean, ”content”:”String” "userRes": { ”id”:”Long” , “nickname” : “String”   },  "categoryList": ["Stirng", "String"    ] } { ”message”:”해당 회원을 찾을 수 없습니다.” } { ”message”:”해당하는 상품이 존재하지 않습니다.” }
Product
완료
DELETE
/api/v2/products/{peoductId}
{ "message": "삭제가 완료되었습니다." } { ”message”:”해당 회원을 찾을 수 없습니다.” } { ”message”:”해당하는 상품이 존재하지 않습니다.” }
Product
완료
GET
/api/v2/products/main
[{    "id": Long, "name": "Stirng", "quantity": Long, "price": Long, "regions": ["Region",        "Region"], "finished": boolean, ”content”:”String” "userRes": { ”id”:”Long” , “nickname” : “String”   },  "categoryList": ["Stirng", "String"    ] }{    "id": Long, "name": "Stirng", "quantity": Long, "price": Long, "regions": ["Region",        "Region"], "finished": boolean, ”content”:”String” "userRes": { ”id”:”Long” , “nickname” : “String”   },  "categoryList": ["Stirng", "String"    ] }{ }]
Product
완료
GET
/api/v2/products/kakao?query=
[{ ”price”:”Long”, ”url”:””, ”name”:”String”, ”imageUrl”:”” } ”price”:”Long”, ”url”:””, ”name”:”String”, ”imageUrl”:”” }]
Product
완료
GET
/api/v2/products/tag?tag=&page=&size=
{ "content": [], "pageable": { "pageNumber": , "pageSize": , "sort": { "empty": false, "sorted": true, "unsorted": false }, "offset": , "unpaged": false, "paged": true }, "last": true, "totalPages": 0, "totalElements": 0, "first": true, "size": 5, "number": 0, "sort": { "empty": false, "sorted": true, "unsorted": false }, "numberOfElements": 0, "empty": true }
Product
완료
GET
/api/v2/products/search?query=12&page=1&size=3
{ "content": [], "pageable": { "pageNumber": , "pageSize": , "sort": { "empty": false, "sorted": true, "unsorted": false }, "offset": , "unpaged": false, "paged": true }, "last": true, "totalPages": 0, "totalElements": 0, "first": true, "size": 5, "number": 0, "sort": { "empty": false, "sorted": true, "unsorted": false }, "numberOfElements": 0, "empty": true }
ProductLike
2
도메인
진행상황
method
기능
URL
request
response
담당자
ProductLike
완료
PUT
/api/v2/productLikes
{ “productId” :1 }
{ “isProductLiked” : true } { ”message” : “해당 회원을 찾을 수 없습니다.” } { ”message” : "해당하는 상품이 존재하지 않습니다!" }
ProductLike
완료
GET
/api/v2/productLikes
{ ”id” : 1, ”name” : “이름”, ”price” : 10000, ”quantity” : 2, ”productLikes” : 1, ”categoryList” : [ “추리”, “스릴러”], ”region” : “부산”, ”imageListRes” : image }
Review
6
도메인
진행상황
method
기능
URL
request
response
담당자
Review
완료
POST
/api/v2/reviews
{ ”productId”:”Long”, “title” : “제목”, “content” : “내용”, “upload” : “imagePathUrl” }
{ “reviewId” : 1, “productId” : 1, “title” : “제목”, “content” : “내용”, “nickname” : “닉네임”, “getReviewImagePathUrl” : “String” } { ”message” : “해당 회원을 찾을 수 없습니다.” } { ”message” : "해당하는 상품이 존재하지 않습니다!" }
Review
완료
GET
/api/v2/reviews
[{ “reviewId” : 1, “title” : “제목”, “nickname” : “이름”, ”reviewLike” : 0 } { “reviewId” : 1, “title” : “제목”, “content” : “내용”, “nickname” : “닉네임” }]
Review
완료
GET
/api/v2/reviews/{reviewId}
{ “reviewId” : 1, “title” : “제목”, “content” : “내용”, “nickname” : “이름”, “reviewLike” : 0, “createdAt” : “LocalDateTime”, “modifiedAt” : “LocalDateTime”, “commentList” : [ “commentGetListRes”, “commentGetListRes” ], “reviewImagePathUrl" : “String” } { “message” : "해당하는 게시글이 존재하지 않습니다." }
Review
완료
PUT
/api/v2/reviews/{reviewId}
{ “title” : “제목 수정”, “content” : “내용 수정”, “upload” : “imagePathUrl” }
{ “reviewId” : 1, “productId” :1, “title” : “제목”, “content” : “내용”, “reviewImagePathUrl" : “String” { “message” : "해당하는 게시글이 존재하지 않습니다." } { “message” : "게시글 수정 및 삭제 권한이 없습니다." }
Review
완료
DELETE
/api/v2/reviews/{reviewId}
{ “msg” : “리뷰 게시글이 삭제되었습니다.” } { “message” : "해당하는 게시글이 존재하지 않습니다." } { “message” : "게시글 수정 및 삭제 권한이 없습니다." }
Review
완료
GET
/api/v2/reviews/search
{ “sortBy” : “createdAt”, “isAsc” : false, “query” : “search” }
{ “reviewId” : 1, “title” : “제목”, “name” : “이름”, “reviewLike” : 0 }
ReviewLike
1
도메인
진행상황
method
기능
URL
request
response
담당자
ReviewLike
진행 중
POST
/api/v2/reviewLikes
{ “reviewId” : 1 }
{ “msg” : “좋아요!” } { “msg” : “좋아요 취소!” } { “message” : "해당하는 게시글이 존재하지 않습니다." } { “message” : "본인의 게시글에는 좋아요를 누를 수 없습니다." }
Comment
4
도메인
진행상황
method
기능
URL
request
response
담당자
Comment
완료
POST
/api/v2/comments
{ “reviewId” : 1, “content” : “댓글” }
{ “commentId” : 1, “content” : “댓글”, “nickname” : “작성자명” } { “message” : "해당하는 게시글이 존재하지 않습니다." }
Comment
완료
GET
/api/v2/comments
{ “reviewId” : 1 }
{ “commentId” : 1, “content” : “댓글”, “nickname” : “작성자명” } { “commentId” : 2, “content” : “댓글”, “nickname” : “작성자명” } …
Comment
완료
PUT
/api/v2/comments/{CommentId}
{ “content” : “댓글수정” }
{ “commentId” : 1, “content” : “댓글수정”, “nickname” : “작성자명” } { “message” : "해당하는 댓글이 존재하지 않습니다." } { “message” : “댓글 수정 및 삭제 권한이 없습니다." }
Comment
완료
DELETE
/api/v2/comments/{CommentId}
{ “msg” : “댓글이 삭제되었습니다. } { “message” : "해당하는 댓글이 존재하지 않습니다." } { “message” : “댓글 수정 및 삭제 권한이 없습니다." }
Admin
7
도메인
진행상황
method
기능
URL
request
response
담당자
Admin
완료
GET
/api/v2/admin/users
{ ”id”:”Long”, ”name”:”String”, ”reportCount”:”Integer”, ”roleType”:”UserRoleType” }
Admin
진행 중
GET
/api/v2/admin/reports/{reportedUserId}
[{ ”reason”:”String”, ”createdAt”:”LocalDateTime” } { ”reason”:”String”, ”createdAt”:”LocalDateTime” }]
Admin
진행 중
PUT
/api/v2/admin/block/{userId}
{ ”message”:”차단되었습니다.” } { ”message” : “해당 회원을 찾을 수 없습니다.” } { ”message”:”스스로를 차단할 수 없습니다.” } { ”message”:”관리자를 차단할 수 없습니다.” }
Admin
진행 중
PUT
/api/v1/admin/unblock/{userId}
{ ”message”:”차단 해제되었습니다.” } { ”message” : “해당 회원을 찾을 수 없습니다.” }
Admin
완료
GET
/api/v2/admin/trades
{ ”id” : 1, ”sellerName” : “홍길동”, ”productName” : “자바의 정석”, ”buyreName” : “김철수”, ”score” : 10 }
Admin
완료
DELETE
/api/v2/admin/products/{productId}
{ ”message” : “삭제가 완료되었습니다.” } { ”message” : "해당하는 상품이 존재하지 않습니다!" }
Admin
완료
DELETE
/api/v2/admin/reviews/{reviewId}
{ ”message” : “리뷰 게시글이 삭제되었습니다.” }
Chat
4
도메인
진행상황
method
기능
URL
request
response
담당자
Chat
완료
MESSAGE
/api/v2/chats/rooms/{roomId}/enter
{ “roomId” : “1”, session }
{ ”홍길동님께서 입장하셨습니다.” }
Chat
완료
MESSAGE
/api/v2/chats/rooms/{roomId}/exit
{ “roomId” : “1”, session }
{ ”홍길동님께서 퇴장하셨습니다.” }
Chat
완료
MESSAGE
/api/v2/chats/rooms/{roomId}/chat
{ “roomId” : “1”, session }
{ ”id” : 1, ”name” : “홍길동”, ”message” : “안녕하세요”, ”LocalDateTime” : “createdAt” }
Chat
완료
GET
/api/v2/chats/rooms/{roomId}
{ “roomId” : 1, }
{ [ ”id” : 1, ”name” : “홍길동”, ”message” : “안녕하세요”, ”LocalDateTime” : “createdAt” , ”id” : 2, ”name” : “김철수”, ”message” : “반갑습니다.”, ”LocalDateTime” : “createdAt” ] }
ImageFile
4
도메인
진행상황
method
기능
URL
request
response
담당자
ImageFile
완료
POST
/api/v2/images
{ ”productId” : 1 }
{ ”imagePathUrl" : String } { ”message” : "해당 회원을 찾을 수 없습니다." } { ”message” : "해당하는 상품이 존재하지 않습니다!" }
ImageFile
완료
GET
/api/v2/images
{ ”productId” : 1 }
{ ”imagePathUrl" : String }
ImageFile
완료
PUT
/api/v2/images
{ ”productId” : 1, ”upload” : [MultipartFile, MultipartFile] }
{ ”imagePathUrl" : String } { ”message” : "해당 회원을 찾을 수 없습니다." } { ”message” : "해당하는 상품이 존재하지 않습니다!" } { ”message” : “작성자가 아닙니다” }
ImageFile
완료
DELETE
/api/v2/images
{ ”productId” : 1 }
{ ”message” : "삭제가 완료되었습니다." } { ”message” : "해당 회원을 찾을 수 없습니다." } { ”message” : "해당하는 상품이 존재하지 않습니다!" } { ”message” : “작성자가 아닙니다” }
notify
1
도메인
진행상황
method
기능
URL
request
response
담당자
notify
완료
GET
/api/v2/notifications/subscribe
sseEmitter
chat room
3
도메인
진행상황
method
기능
URL
request
response
담당자
chat room
완료
POST
/api/v2/chats/rooms
{ “recieverId”:”Long” }
{ ”id”:”Long”, ”sender”:[{”id”:Long},{”nickname”:”String”}], ”receiver”:[{”id”:Long},{”nickname”:”String”}] }
chat room
완료
GET
/api/v2/chats/rooms
[{ ”id”:”Long”, ”sender”:[{”id”:Long},{”nickname”:”String”}], ”receiver”:[{”id”:Long},{”nickname”:”String”}] }, { ”id”:”Long”, ”sender”:[{”id”:Long},{”nickname”:”String”}], ”receiver”:[{”id”:Long},{”nickname”:”String”}] }]
chat room
완료
DELETE
/api/v2/chats/rooms/{roomId}
{ ”message”:”삭제가 완료되었습니다.” } { ”message”:”채팅방 참가자가 아닙니다.” }