- 나눴던 이유
- https를 적용하는데 이슈가 있어서 https를 적용하지 않은 개발 인스턴스를 따로 분리했었음 현재는 나눠 놓은 의미가 거의 없음 (코드가 같음)
- Category: 앞으로 영어로 보내야 합니다
DIGITAL_DEVICE("디지털 기기"), HOUSEHOLD_APPLIANCE("생활 가전"), FURNITURE("가구/인테리어"), CHILDREN_BOOK("유아 도서"), FOOD("생활/가공 식품"), SPORTS_LEISURE("스포츠/레저"), WOMAN_GOODS("여성 잡화"), WOMAN_CLOTHES("여성 의류"), MAN_FASHION_GOODS("남성패션/잡화"), HOBBY("게임/취미"), BEAUTY("뷰티/미용"), PET_SUPPLY("반려 동물 용품"), BOOK_TICKET_RECORD("도서/티켓/음반"), PLANT("식물"), ETC("기타 중고 물품"), ALL("전체");
유저
상품
입찰
댓글
신고
알림
채팅
상품 카테고리 종류
DIGITAL_DEVICE("디지털 기기"), HOUSEHOLD_APPLIANCE("생활 가전"), FURNITURE("가구/인테리어"), CHILDREN_BOOK("유아 도서"), FOOD("생활/가공 식품"), SPORTS_LEISURE("스포츠/레저"), WOMAN_GOODS("여성 잡화"), WOMAN_CLOTHES("여성 의류"), MAN_FASHION_GOODS("남성패션/잡화"), HOBBY("게임/취미"), BEAUTY("뷰티/미용"), PET_SUPPLY("반려 동물 용품"), BOOK_TICKET_RECORD("도서/티켓/음반"), PLANT("식물"), ETC("기타 중고 물품"); -> 한글로 보내셔야 합니다.
API 목록
서버에 배포된 api는 체크합니다.
완료
상품 등록
상품 상세조회
상품 전체조회
유저 수정기능
회원 입찰 상품 목록 with Token
응답
Response [ { "id": Number, "title": String, "thumbnailImage": String, "minimumPrice": Number, "expireAt": Date, "createdAt": Date, "updatedAt": Date, }, {} // 유사 데이터 limit 개수만큼 반환 ]
회원 정보
응답
Response { "encodedId": String; "thumbnailImg": S3url //초기에는 구글프로필 url을 갖고 있습니다. 추후에 처리하겠습니다. "username": string; }
회원 판매 상품 목록
응답
Response [ { "id": Number, "title": String, "thumbnailImage": String, "minimumPrice": Number, "expireAt": Date, "createdAt": Date, "updatedAt": Date, }, {} // 유사 데이터 limit 개수만큼 반환 ]
입찰 API
요청/응답
Resquest { "productId": Number, "biddingPrice": Number, } Response { id : Number // 생성된 bidding에 대한 아이디 }
로그인한 유저 정보 API with Token
응답
- 회원 정보랑 다른 것임
- 토큰이랑 보낼 것임
Response { "encodedId": string; "thumbnailImg": S3url //초기에는 구글프로필 url을 갖고 있습니다. 추후에 처리하겠습니다. "username": string; }
진행
알림 조회 API with Token
응답
// 알림 페이지 진입시 response [ { "notificationId": number; "product": { "id": number; "title": string; "description": string; } } ]
[논의중] 본인이 해당상품의 입찰자인지 확인하는 API with Token
요청 응답
// 입찰하기 버튼 클릭시 request { "productId": number; } response { "isBid": boolean; "user": { "id": number; "biddingPrice": number; } }
[논의중] 낙찰되었는지 확인 API with Token [논의중]
- 입찰자(입찰자, 낙찰자) → 본인이 낙찰자인지 확인
요청
// 상품 상세 조회의 expireAt값이랑 현재시간 비교하여 종료되었으면 // (토큰 존재 확인후) 낙찰자인지 확인 API 요청 request // 상품생성 API와 동일 { "productId": number; "userId": number; // 입찰자 } response { "당신이 낙찰자인가": boolean; "채팅방 id": number; "채팅 상대 닉네임": string; }
시퀀스 다이어 그램

[논의중] 낙찰되었는지 확인 API with Token[논의중]
- 판매자 → 낙찰되었는지 확인
요청
// 상품 상세 조회의 expireAt값이랑 현재시간 비교하여 종료되었으면 // (토큰 존재 확인후) 낙찰자인지 확인 API 요청 request // 상품생성 API와 동일 { "productId": number; "userId": number; // 입찰자 } response { "낙찰자가 있는 상품인가": boolean; "채팅방 id": number; "채팅 상대 닉네임": string; }
시퀀스 다이어 그램

- 당신은 낙찰자 인가 / 낙찰자가 있는 상품인가
- False / False
- True / True
- False / True
- True / False ← 불가능
채팅 목록 API with Token
요청
응답
// 채팅 목록 페이지 진입시 (만약 API로 목록을 불러온다면) response [ { "chatRoomId": 2, "productInfo": { "productId": 2, "thumbnailImage": "https://user-images.githubusercontent.com/61923768/182771448-d2eefc50-7f3a-4582-8eb7-e91ebb9e94d0.png" }, "opponentUserInfo": { "username": "유재희", "profileImage": "https://lh3.googleusercontent.com/a/AItbvmmujg3pE4C3iRbHWRZCd-BtvUykZ2BaaIAuSoo7=s96-c" }, "lastMessage": "마지막 메세지", "lastMessageDate": "2022-08-10T13:13:54" } ]
- 응답에 데이터가 없을 경우 빈배열을 반환합니다
찜하기 API with Token
요청
// 찜하기 버튼 클릭시 request { "userId": number; "productId": number; }
찜 취소하기 API with Token
요청
// 찜 취소하기 버튼 클릭시 request { "userId": number; "productId": number; }
찜한 상품 조회 API with Token
응답
// 회원정보 - 찜한 상품목록 페이지 진입시 response // 입찰상품 목록 조회와 동일 [ { "id": Number, "title": String, "thumbnailImage": String, "minimumPrice": Number, "expireAt": Date, "createdAt": Date, "updatedAt": Date, }, {} // 유사 데이터 limit 개수만큼 반환 ]
탈퇴하기 API with Token
요청
// 탈퇴하기 버튼 클릭시 request { "userId": number; }
신고하기 API with Token
Case
- 회원 신고
- where : 채팅방에서
- 신고 대상 회원 정보
- 게시글 신고
- where : 상품 상세 페이지에서
- 신고 대상 회원 정보, 상품에 대한 정보와 함께
- 댓글 신고
- where : 상품 상세 페이지에서
- 신고 대상 회원 정보, 상품 에 대한 정보 와 함께
- > 찜하기/찜 취소하기 -> 내가 상품을 찜했는지의 여부(상세페이지 조회 때 확인) -> 메인페이지에서 상품마다 찜이 몇개있는지 보내주기 -> 유저의 찜한 상품 리스트 보여주기
대기
재입찰(입찰 수정) API with Token
요청 응답
// 재입찰-완료 버튼 클릭시 request { "productId": number; "user": { "id": number; "biddingPrice": number; } } response { "id": Number // 생성된 비딩의 식별자 }
입찰 취소 API with Token
요청
// 입찰취소 버튼 클릭시 request { "productId": number; "userId": number; }
상품 수정 API with Token
요청
// 수정하기 버튼 클릭시 request // 상품생성 API와 동일 { "images": [], //최대: 5개 "title": String, //최대: 32자 "minimumPrice": Number, //최소: 1000원 "category": String, <- 영어 이름(DIGITAL_DEVICE)!! "location": String, "description": String, //최대: 500자 }