Table
Search
이름
태그
MBTI
블로그 주소
Github주소
한마디!
1. 프로젝트
•
프로젝트 명 : Book톡방
•
소개
◦
한 줄 정리 : 책과관련해 중고거래가 메인인 사이트로 서로 책에 대해 추천하거나 이야기를 나눌 수 있는 서비스
◦
내용 :
▪
중고책 등록
▪
판매자와 구매자간의 커뮤니티 기능 (거래 채팅, 책 추천 게시글작성 etc…)
▪
거래하는 사용자에 대해 평가 및 신고기능
▪
openapi를 활용해 시중 책과의 가격 비교가능
▪
태그 및 거래지역을 선택검색가능
▪
관심있는 키워드에 대한 알림기능
1. 문제상황있으면 꼭 공유하기
2. 서로 존중하고 배려하면서 말하기
3. 질문하는데에 망설이지 않기
4. 코드컨벤션, 깃컨벤션 지키기
5. 책임감가지고 수행하기
Plain Text
복사
Goals
후회없는 프로젝트로 완성하기
기술면접질문 TOP30 숙달하기
TIL매일쓰기 - 서로 댓글 달아주기
Plain Text
복사
회의
9:00 : 문제 2개 선정
9:00 - 9:20 : 문제에 관련한 개념 공부해오기
9:20 - 10:00 : 답변 연습하기 및 피드백하기
20:00 : 하루에 한번이상 모여서 자기가 짠 코드리뷰하면서 팀원들에게 질문&설명하기
Plain Text
복사
Project Rules
개발환경
계획표
보드 보기
Search
월요일(1주차)
0
화요일(1주차)
0
수요일(1주차)
0
목요일(1주차)
0
금요일(1주차)
0
월요일(2주차)
0
화요일(2주차)
0
수요일(2주차)
0
목요일(2주차)
0
금요일(2주차)
0
SA 서면피드백
Plain Text
복사
4. 와이어프레임
Table
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/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
담당자
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
완료
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
담당자
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” : "해당하는 상품이 존재하지 않습니다!"
}
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
완료
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
담당자
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”:”채팅방 참가자가 아닙니다.”
}
Table
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/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
담당자
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
완료
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
담당자
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” : "해당하는 상품이 존재하지 않습니다!"
}
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
완료
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
담당자
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”:”채팅방 참가자가 아닙니다.”
}
API 명세서 작성중 고민되는점