-
Notifications
You must be signed in to change notification settings - Fork 4
API 명세서
요청 성공 시
- HTTP 상태 코드 및 API 별 성공에 대한 응답 내용 반환
- 이후 API 명세 참고
요청 실패 시
-
HTTP 상태 코드 및 JSON 형식의 에러 메시지 반환
{ message: String }
상태 코드 | 상태 | 설명 |
---|---|---|
200 OK | 성공 | 요청을 성공적으로 수행 |
201 Created | 성공 | 리소스 생성 |
400 Bad Request | 실패 | 잘못된 요청 |
401 Unauthorized | 실패 | 비인증 상태 |
403 Forbidden | 실패 | 권한 거부 |
404 Not Found | 실패 | 존재하지 않는 리소스에 대한 요청 |
500 Internal Server Error | 실패 | 서버 에러 |
request
POST
/oauth2/login/{oauth2Type}
POST /oauth2/login/kakao HTTP/1.1
Content-Type: application/json
{
"accessToken" : "kakaoAccessToken",
"deviceToken" : "deviceToken"
}
-
본문
이름 타입 설명 필수 accessToken String 소셜 로그인 AccessToken O deviceToken String 기기 디바이스 토큰 O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"accessToken" : "Bearer accessToken",
"refreshToken" : "Bearer refreshToken",
"isSignUpUser" : false
}
-
본문
이름 타입 설명 필수 accessToken String Access Token O refreshToken String Refresh Token O isSignUpUser Boolean 최초 로그인 여부(회원가입) O
request
POST
/oauth2/refresh-token
POST /oauth2/refresh-token HTTP/1.1
Content-Type: application/json
{
"refreshToken" : "Bearer refreshToken"
}
-
본문
이름 타입 설명 필수 refreshToken String Refresh Token O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"accessToken" : "Bearer accessToken",
"refreshToken" : "Bearer refreshToken"
}
-
본문
이름 타입 설명 필수 accessToken String 재발급한 Access Token O refreshToken String 기존 Refresh Token O
request
GET
/oauth2/validate-token
GET /oauth2/validate-token HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"validated" : true
}
-
본문
이름 타입 설명 필수 validated Boolean Access Token이 유효한지 여부 O
request
POST
/oauth2/logout
POST /oauth2/logout HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"refreshToken" : "Bearer refreshToken"
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 refreshToken String Refresh Token O
response
HTTP/1.1 204 No Content
request
DELETE
/oauth2/withdrawal
POST /oauth2/withdrawal HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"refreshToken" : "Bearer refreshToken"
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 refreshToken String Refresh Token O
response
HTTP/1.1 204 No Content
request
GET
/users
GET /users HTTP/1.1
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"name" : "사용자",
"profileImage" : "http://localhost:8080/users/images/1",
"reliability" : 4.6
}
-
본문
이름 타입 설명 필수 name String 사용자 닉네임 O profileImage String 사용자 프로필 이미지 URL O reliability Number 사용자 신뢰도 O
request
PATHCH
/users
PATCH /users HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer accessToken
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=images; filename=image.png
Content-Type: image/png
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request; filename=request
Content-Type: application/json
{
"name": "새로운 이름"
}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 image Multipart 수정할 프로필 이미지 파일 (1장) X request Multipart 요청 데이터 X -
request 필드
이름 타입 설명 필수 name String 수정할 닉네임 O
-
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"name" : "updateName",
"profileImage" : "http://localhost:8080/users/images/1",
"reliability" : 4.6
}
-
본문
이름 타입 설명 필수 name String 사용자 닉네임 O profileImage String 사용자 프로필 이미지 URL O reliability Number 사용자 신뢰도 O
request
GET
/categories
GET /categories HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 1,
"name" : "main1"
},
{
"id" : 2,
"name" : "main2"
}
]
-
본문
이름 타입 설명 필수 [] Array 모든 메인 카테고리 목록
존재하지 않는다면 빈 배열 반환O [].id Number 메인 카테고리 ID O [].name String 메인 카테고리 이름 O
request
GET
/categories/{mainId}
GET /categories/1 HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 2,
"name" : "sub1"
},
{
"id" : 3,
"name" : "sub2"
}
]
-
본문
이름 타입 설명 필수 [] Array 메인 카테고리에 해당하는 모든 서브 카테고리 목록
존재하지 않는다면 빈 배열 반환O [].id Number 서브 카테고리 ID O [].name String 서브 카테고리 이름 O
request
GET
/regions
GET /regions HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 1,
"name" : "서울특별시"
}, {
"id" : 2,
"name" : "부산광역시"
}
]
-
본문
이름 타입 설명 필수 [] Array 모든 첫 번째 직거래 지역 목록
존재하지 않는다면 빈 배열 반환O [].id Number 첫 번째 직거래 지역 ID O [].name String 첫 번째 직거래 지역 이름 O
request
GET
/regions/{firstId}
GET /regions/1 HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 4,
"name" : "강남구"
},
{
"id" : 5,
"name" : "강동구"
}
]
-
본문
이름 타입 설명 필수 [] Array 첫 번째 지역에 해당하는 모든 두 번째 직거래 지역
존재하지 않는다면 빈 배열 반환O [].id Number 두 번째 직거래 지역 ID O [].name String 두 번째 직거래 지역 이름 O
request
GET
/regions/{firstId}/{secondId}
GET /regions/1/4 HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 7,
"name" : "개포1동"
},
{
"id" : 8,
"name" : "개포2동"
}
]
-
본문
이름 타입 설명 필수 [] Array 두 번째 지역에 해당하는 모든 세 번째 직거래 지역
존재하지 않는다면 빈 배열 반환O [].id Number 세 번째 직거래 지역 ID O [].name String 세 번째 직거래 지역 이름 O
request
POST
/auctions
POST /auctions HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer accessToken
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=images; filename=image.png
Content-Type: image/png
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request; filename=request
Content-Type: application/json
{"title":"제목","description":"내용","bidUnit":1000,"startPrice":1000,"closingTime":"2023-10-18T21:12:06.450773","subCategoryId":2,"thirdRegionIds":[3]}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 image Multipart 이미지 파일(Array, 최대 10장) X request Multipart 요청 데이터 X -
request 필드
이름 타입 설명 필수 title String 경매 글 제목 O description String 경매 글 본문 O bidUnit Number 입찰 단위 O startPrice Number 시작가 O closingTime String 마감 시간 O subCategoryId Number 서브 카테고리 아이디 O thirdRegionIds Array 세 번째 직거래 지역 목록 O thirdRegionIds.[] Number 세 번째 직거래 지역 아이디 O
-
response
HTTP/1.1 201 Created
Location: /auctions/1
Content-Type: application/json
{
"id" : 1,
"title" : "제목",
"image" : "http://localhost:8080/auctions/images/1",
"auctionPrice" : 1000,
"status" : "UNBIDDEN",
"auctioneerCount" : 0
}
-
본문
이름 타입 설명 필수 id Number 경매 ID O title String 경매 글 제목 O image String 경매 대표 이미지 URL O auctionPrice Number 시작가 O status String 경매 상태 O auctioneerCount Number 경매 참여자 수 O
request
GET
/auctions?size={size}&page={pageNumber}&sortType={sortType}?lastAuctionId={lastAuctionId}
GET /auctions?size=10 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"auctions" : [
{
"id" : 2,
"title" : "경매 상품 1",
"image" : "http://localhost:8080/auctions/images/1",
"auctionPrice" : 1000,
"status" : "UNBIDDEN",
"auctioneerCount" : 2
},
{
"id" : 1,
"title" : "경매 상품 1",
"image" : "http://localhost:8080/auctions/images/1",
"auctionPrice" : 1000,
"status" : "UNBIDDEN",
"auctioneerCount" : 2
}
],
"isLast" : true
}
-
본문
이름 타입 설명 필수 auctions Array 조회한 경매 목록 O auctions.[] Array 조회한 단일 경매 정보 O auctions.[].id Number 경매 ID O auctions.[].title String 경매 글 제목 O auctions.[].image String 경매 대표 이미지 URL O auctions.[].auctionPrice Number 경매가(시작가, 현재가, 낙찰가 중 하나) O auctions.[].status String 경매 상태 O auctions.[].auctioneerCount Number 경매 참여자 수 O isLast Boolean 마지막 페이지 여부 O
request
GET
/users/auctions/mine?size={size}&page={pageNumber}
GET /users/auctions/mine?size=10&page=1 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"auctions" : [
{
"id" : 2,
"title" : "경매 상품 2",
"image" : "http://localhost:8080/auctions/images/1",
"auctionPrice" : 1000,
"status" : "UNBIDDEN",
"auctioneerCount" : 2
},
{
"id" : 1,
"title" : "경매 상품 1",
"image" : "http://localhost:8080/auctions/images/1",
"auctionPrice" : 1000,
"status" : "UNBIDDEN",
"auctioneerCount" : 2
}
],
"isLast" : true
}
-
본문
이름 타입 설명 필수 auctions Array 조회한 경매 목록 O auctions.[] Array 조회한 단일 경매 정보 O auctions.[].id Number 경매 ID O auctions.[].title String 경매 글 제목 O auctions.[].image String 경매 대표 이미지 URL O auctions.[].auctionPrice Number 경매가(시작가, 현재가, 낙찰가 중 하나) O auctions.[].status String 경매 상태 O auctions.[].auctioneerCount Number 경매 참여자 수 O isLast Boolean 마지막 페이지 여부 O
request
GET
/users/auctions/bids?size={size}&page={pageNum}
GET /users/auctions/bids?size=10&page=1 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"auctions" : [
{
"id" : 2,
"title" : "경매 상품 2",
"image" : "http://localhost:8080/auctions/images/1",
"auctionPrice" : 1000,
"status" : "UNBIDDEN",
"auctioneerCount" : 2
},
{
"id" : 1,
"title" : "경매 상품 1",
"image" : "http://localhost:8080/auctions/images/1",
"auctionPrice" : 1000,
"status" : "UNBIDDEN",
"auctioneerCount" : 2
}
],
"isLast" : true
}
-
본문
이름 타입 설명 필수 auctions Array 조회한 경매 목록 O auctions.[] Array 조회한 단일 경매 정보 O auctions.[].id Number 경매 ID O auctions.[].title String 경매 글 제목 O auctions.[].image String 경매 대표 이미지 URL O auctions.[].auctionPrice Number 경매가(시작가, 현재가, 낙찰가 중 하나) O auctions.[].status String 경매 상태 O auctions.[].auctioneerCount Number 경매 참여자 수 O isLast Boolean 마지막 페이지 여부 O
request
GET
/auctions/{id}
GET /auctions/1 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"auction" : {
"id" : 1,
"images" : [ "http://localhost:8080/auctions/images/1" ],
"title" : "경매 상품 1",
"category" : {
"main" : "main",
"sub" : "sub"
},
"description" : "이것은 경매 상품 1 입니다.",
"startPrice" : 1000,
"lastBidPrice" : null,
"status" : "UNBIDDEN",
"bidUnit" : 1000,
"registerTime" : "2023-10-15T21:12:06",
"closingTime" : "2023-10-15T21:12:06",
"directRegions" : [ {
"first" : "서울특별시",
"second" : "강서구",
"third" : "역삼동"
} ],
"auctioneerCount" : 2
},
"seller" : {
"id" : 1,
"image" : "http://localhost:8080/users/images/1",
"nickname" : "판매자",
"reliability" : 3.5
},
"chat" : {
"id" : 1,
"isChatParticipant" : true
},
"isOwner" : true,
"isLastBidder" : false
}
-
본문
이름 타입 설명 필수 auction.id Number 경매 글 ID O auction.images Array 경매 이미지 O auction.title String 경매 글 제목 O auction.category Object 경매 카테고리 O auction.category.main String 상위 카테고리 O auction.category.sub String 하위 카테고리 O auction.description String 경매 본문 O auction.startPrice Number 시작가 O auction.lastBidPrice Null 마지막 입찰가 O auction.status String 경매 상태 O auction.bidUnit Number 입찰 단위 O auction.registerTime String 경매 등록시간 O auction.closingTime String 경매 마감시간 O auction.directRegions Array 모든 직거래 지역 O auction.directRegions.[] Array 단일 직거래 지역 O auction.directRegions.[].first String 첫 번째 직거래 지역 O auction.directRegions.[].second String 두 번째 직거래 지역 O auction.directRegions.[].third String 세 번째 직거래 지역 O auction.auctioneerCount Number 경매 참여자 수 O seller Object 판매자 정보 O seller.id Number 판매자 ID O seller.image String 판매자 프로필 이미지 주소 O seller.nickname String 판매자 닉네임 O seller.reliability Number 판매자 신뢰도 O chat.id Number 채팅방 ID X chat.isChatParticipant Boolean 로그인한 사용자가 채팅방 생성이 가능한 사용자인지에 대한 여부 O isOwner Boolean 로그인한 사용자가 해당 경매 글을 작성한 사용자인지에 대한 여부 O isLastBidder Boolean 로그인한 사용자가 해당 경매의 최고 입찰자인지에 대한 여부 O
request
DELETE
/auctions/{id}
DELETE /auctions/1 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 204 No Content
request
POST
/questions
POST /questions HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1,
"content" : "궁금한 점이 있습니다."
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 질문할 경매 ID O content String 질문 내용 O
response
HTTP/1.1 201 Created
Location: /auctions/1
request
delete
/questions/{quesionId}
DELETE /questions/1 HTTP/1.1
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 204 No Content
request
POST
/questions/{quesionId}/answers
POST /questions/1/answers HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1,
"content" : "답변 드립니다."
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 답변할 질문의 경매 ID O content String 답변 내용 O
response
HTTP/1.1 201 Created
Location: /auctions/1
request
delete
/questions/answers/{answerId}
DELETE /questions/answers/1 HTTP/1.1
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 204 No Content
request
GET
/auctions/{auctionId}/questions
GET /auctions/1/questions HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"qnas" : [ {
"question" : {
"id" : 1,
"writer" : {
"id" : 1,
"name" : "질문자",
"image" : "http://localhost:8080/users/images/1"
},
"createdTime" : "2023-10-15T21:12:06",
"content" : "질문1",
"isQuestioner" : false
},
"answer" : {
"id" : 1,
"writer" : {
"id" : 2,
"name" : "판매자",
"image" : "http://localhost:8080/users/images/2"
},
"createdTime" : "2023-10-15T21:12:06",
"content" : "답변1"
}
}, {
"question" : {
"id" : 2,
"writer" : {
"id" : 1,
"name" : "질문자",
"image" : "http://localhost:8080/users/images/1"
},
"createdTime" : "2023-10-15T21:12:06",
"content" : "질문2",
"isQuestioner" : false
},
"answer" : {
"id" : 2,
"writer" : {
"id" : 2,
"name" : "판매자",
"image" : "http://localhost:8080/users/images/2"
},
"createdTime" : "2023-10-15T21:12:06",
"content" : "답변1"
}
} ]
}
-
본문
이름 타입 설명 필수 qnas.[] Array 모든 경매 질문과 답변 목록
값이 없다면 빈 배열 반환O qnas.[].question Object 질문 정보 JSON X qnas.[].question.id Number 경매 질문 글 ID O qnas.[].question.writer Object 질문자 정보 JSON O qnas.[].question.writer.id Number 질문자의 ID O qnas.[].question.writer.name String 질문자의 이름 O qnas.[].question.writer.image String 질문자의 프로필 이미지 URL O qnas.[].question.createdTime String 질문 등록 시간 O qnas.[].question.content String 질문 내용 O qnas.[].question.isQuestioner Boolean 질문 작성자 여부 확인 O qnas.[].answer Object 답변 정보 JSON X qnas.[].answer.id Number 경매 답변 글 ID O qnas.[].answer.writer Object 답변자 정보 JSON O qnas.[].answer.writer.id Number 답변자의 ID O qnas.[].answer.writer.name String 답변자의 이름 O qnas.[].answer.writer.image String 답변자의 프로필 이미지 URL O qnas.[].answer.createdTime String 답변 등록 시간 O qnas.[].answer.content String 답변 내용 O
request
POST
/bids
POST /bids HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1,
"bidPrice" : 10000
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 입찰할 경매 ID O bidPrice Number 입찰 금액 O
response
HTTP/1.1 201 Created
Location: /auctions/1
request
GET
/bids/{auctionId}
GET /bids/1 HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"name" : "사용자1",
"profileImage" : "http://localhost:8080/users/images/1",
"price" : 10000,
"bidTime" : "2023-10-15T21:12:13"
}, {
"name" : "사용자2",
"profileImage" : "http://localhost:8080/users/images/2",
"price" : 12000,
"bidTime" : "2023-10-15T21:12:13"
}
]
-
본문
이름 타입 설명 필수 [] Array 특정 경매의 모든 입찰 목록
없다면 빈 배열을 반환한다O [].name String 입찰한 사용자의 닉네임 O [].profileImage String 입찰한 사용자의 프로필 이미지 URL O [].price Number 입찰한 금액 O [].bidTime String 입찰한 시간 O
request
POST
/chattings
POST /chattings HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 연관된 경매 ID O
response
HTTP/1.1 201 Created
Location: /chattings/1
Content-Type: application/json
{
"chatRoomId" : 1
}
-
본문
이름 타입 설명 필수 chatRoomId Number 생성된 채팅방 ID O
request
GET
/chattings
GET /chattings HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보 액세스 토큰으로 인증 요청 O
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 1,
"chatPartner" : {
"id" : 2,
"name" : "구매자1",
"profileImage" : "http://localhost:8080/users/images/2"
},
"auction" : {
"id" : 1,
"title" : "경매1",
"image" : "http://localhost:8080/auctions/images/1",
"price" : 10000
},
"lastMessage" : {
"createdAt" : "2023-10-15T21:12:16",
"contents" : "메시지1"
},
"isChatAvailable" : true
}, {
"id" : 2,
"chatPartner" : {
"id" : 3,
"name" : "구매자2",
"profileImage" : "http://localhost:8080/users/images/3"
},
"auction" : {
"id" : 2,
"title" : "경매2",
"image" : "http://localhost:8080/auctions/images/1",
"price" : 20000
},
"lastMessage" : {
"createdAt" : "2023-10-15T21:12:16",
"contents" : "메시지2"
},
"isChatAvailable" : true
}
]
-
본문
이름 타입 설명 필수 [] Array 자신이 참여한 채팅방 목록 O [].id Number 채팅방 ID O [].chatPartner Object 채팅 상대방 O [].chatPartner.id Number 채팅 상대방 ID O [].chatPartner.name String 채팅 상대방 이름 O [].chatPartner.profileImage String 채팅 상대방 프로필 사진 O [].auction Object 채팅방과 연관된 경매 O [].auction.id Number 경매 ID O [].auction.title String 경매 제목 O [].auction.image String 경매 대표 사진 O [].auction.price Number 낙찰가 O [].lastMessage Object 마지막으로 전송된 메시지 O [].lastMessage.createdAt String 메시지를 보낸 시간 O [].lastMessage.contents String 메시지 내용 O [].isChatAvailable Boolean 채팅 가능 여부 O
request
GET
/chattings/{chatRoomId}
GET /chattings/1 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id" : 1,
"chatPartner" : {
"id" : 1,
"name" : "판매자",
"profileImage" : "http://localhost:8080/users/images/1"
},
"auction" : {
"id" : 1,
"title" : "경매1",
"image" : "http://localhost:8080/auctions/images/1",
"price" : 10000
},
"isChatAvailable" : true
}
-
본문
이름 타입 설명 필수 id Number 채팅방 ID O auction Object 채팅방과 연관된 경매 O auction.id Number 경매 ID O auction.title String 경매 제목 O auction.image String 경매 대표 사진 URL O auction.price Number 낙찰가 O chatPartner Object 채팅 상대방 O chatPartner.id Number 채팅 상대방 ID O chatPartner.name String 채팅 상대방 이름 O chatPartner.profileImage String 채팅 상대방 프로필 사진 URL O isChatAvailable Boolean 채팅 가능 여부 O
request
POST
/chattings/{chatRoomId}/messages
POST /chattings/1/messages HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"receiverId" : 1,
"contents" : "메시지 내용"
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 receiverId Number 메시지 수신자 ID O contents String 메시지 내용 O
response
HTTP/1.1 201 Created
Location: /chattings/1
Content-Type: application/json
{
"id" : 1
}
-
본문
이름 타입 설명 필수 id Number 메시지 보내진 채팅방 ID O
request
GET
/chattings/{chatRoomId}/messages?lastMessageId={id}
GET /chattings/1/messages?lastMessageId=1 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 1,
"createdAt" : "2023-10-15T21:12:16",
"isMyMessage" : true,
"contents" : "메시지내용"
}
]
-
본문
이름 타입 설명 필수 [] Array 하나의 채팅방 내의 메시지 목록 (lastMessageId가 포함되어 있다면 lastMessageId 이후의 메시지 목록
없다면 빈 배열이 반환된다O [].id Number 메시지 ID O [].createdAt String 메시지를 보낸 시간 O [].isMyMessage Boolean 조회를 요청한 사람이 보낸 메시지인지 여부 O [].contents String 메시지 내용 O
request
POST
/reviews
POST /reviews HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1,
"targetId" : 2,
"content" : "친절하다.",
"score" : 5.0
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 거래한 경매 ID O targetId Number 평가 대상 ID O score Number 평가 점수 O content String 평가 내용 O
response
HTTP/1.1 201 Created
Location: /reviews/1
request
GET
/auctions/{auctionId}/reviews
GET /reviews/2 HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"score" : 5.0,
"content" : "친절하다."
}
-
본문
이름 타입 설명 필수 score Number 평가 점수 O content String 평가 내용 O
request
GET
/reviews?userId={targetId}
GET /reviews/users/3 HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id" : 3,
"writer" : {
"id" : 2,
"name" : "판매자2",
"profileImage" : "http://localhost:8080/users/images/2"
},
"content" : "친절하다.",
"score" : 5.0,
"createdTime" : "2023-10-15T21:12:29"
}, {
"id" : 2,
"writer" : {
"id" : 1,
"name" : "판매자1",
"profileImage" : "http://localhost:8080/users/images/1"
},
"content" : "친절하다.",
"score" : 5.0,
"createdTime" : "2023-10-15T21:12:29"
}
]
-
본문
이름 타입 설명 필수 [] Array 조회 대상 사용자가 받은 모든 평가 목록
없다면 빈 배열 반환O [].id Number 사용자 평가 ID O [].writer.id Number 평가를 작성한 사용자의 ID O [].writer.name String 평가를 작성한 사용자의 이름 O [].writer.profileImage String 평가를 작성한 사용자의 프로필 이미지 url O [].content String 평가 내용 O [].score Number 평가 점수 O [].createdTime String 평가 작성 시간 O
request
GET /auctions/1/reviews HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"score" : 5.0,
"content" : "친절하다."
}
-
본문
이름 타입 설명 필수 score Number 평가 점수 O content String 평가 내용 O
request
POST
/reports/auctions
POST /reports/auctions HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1,
"description" : "신고합니다"
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 신고할 경매 ID O description String 신고 내용 O
response
HTTP/1.1 201 Created
Location: /auctions/1
request
GET
/reports/auctions
GET /reports/auctions HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"reports" : [ {
"id" : 1,
"reporter" : {
"id" : 2,
"name" : "회원1"
},
"createdTime" : "2023-10-15T21:12:26",
"auction" : {
"id" : 1,
"title" : "제목"
},
"description" : "신고합니다."
}, {
"id" : 2,
"reporter" : {
"id" : 3,
"name" : "회원2"
},
"createdTime" : "2023-10-15T21:12:26",
"auction" : {
"id" : 1,
"title" : "제목"
},
"description" : "신고합니다."
}, {
"id" : 3,
"reporter" : {
"id" : 4,
"name" : "회원3"
},
"createdTime" : "2023-10-15T21:12:26",
"auction" : {
"id" : 1,
"title" : "제목"
},
"description" : "신고합니다."
} ]
}
-
본문
이름 타입 설명 필수 reports.[] Array 모든 경매 신고 목록 O reports.[].id Number 경매 신고 글 ID O reports.[].reporter.id Number 경매 신고한 사용자의 ID O reports.[].reporter.name String 경매 신고한 사용자의 이름 O reports.[].createdTime String 경매 신고 시간 O reports.[].auction.id Number 신고한 경매 ID O reports.[].auction.title String 신고한 경매 제목 O reports.[].description String 신고 내용 O
request
POST
/reports/chat-rooms
POST /reports/chat-rooms HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"chatRoomId" : 1,
"description" : "신고합니다"
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 chatRoomId Number 신고할 채팅방 ID O description String 신고 내용 O
response
HTTP/1.1 201 Created
Location: /chattings/1
request
GET
/reports/chat-rooms
GET /reports/chat-rooms HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"reports" : [ {
"id" : 1,
"reporter" : {
"id" : 2,
"name" : "구매자1"
},
"createdTime" : "2023-10-15T21:12:27",
"chatRoom" : {
"id" : 1
},
"description" : "신고합니다."
}, {
"id" : 2,
"reporter" : {
"id" : 3,
"name" : "구매자2"
},
"createdTime" : "2023-10-15T21:12:27",
"chatRoom" : {
"id" : 1
},
"description" : "신고합니다."
}, {
"id" : 3,
"reporter" : {
"id" : 3,
"name" : "구매자2"
},
"createdTime" : "2023-10-15T21:12:27",
"chatRoom" : {
"id" : 1
},
"description" : "신고합니다."
} ]
}
-
본문
이름 타입 설명 필수 reports.[] Array 모든 채팅방 신고 목록 O reports.[].id Number 채팅방 신고 글 ID O reports.[].reporter.id Number 채팅방을 신고한 사용자의 ID O reports.[].reporter.name String 채팅방을 신고한 사용자의 이름 O reports.[].createdTime String 채팅방 신고 시간 O reports.[].chatRoom.id Number 신고한 채팅방 ID O reports.[].description String 신고 내용 O
request
POST
/reports/questions
POST /reports/questions HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1,
"questionId" : 1,
"description" : "신고합니다."
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 질문의 경매 ID O questionId Number 신고할 질문 ID O description String 신고 내용 O
response
HTTP/1.1 201 Created
Location: /auctions/1/questions
request
GET
/reports/questions
GET /reports/questions HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"reports" : [ {
"id" : 1,
"reporter" : {
"id" : 2,
"name" : "구매자1"
},
"createdTime" : "2023-10-15T21:12:27",
"question" : {
"id" : 1
},
"description" : "신고합니다."
}, {
"id" : 2,
"reporter" : {
"id" : 2,
"name" : "구매자1"
},
"createdTime" : "2023-10-15T21:12:27",
"question" : {
"id" : 2
},
"description" : "신고합니다."
}, {
"id" : 3,
"reporter" : {
"id" : 2,
"name" : "구매자1"
},
"createdTime" : "2023-10-15T21:12:27",
"question" : {
"id" : 3
},
"description" : "신고합니다."
} ]
}
-
본문
이름 타입 설명 필수 reports.[] Array 모든 질문 신고 목록 O reports.[].id Number 질문 신고 글 ID O reports.[].reporter.id Number 질문을 신고한 사용자의 ID O reports.[].reporter.name String 질문을 신고한 사용자의 이름 O reports.[].createdTime String 질문 신고 시간 O reports.[].question.id Number 신고한 질문 ID O reports.[].description String 신고 내용 O
request
POST
/reports/answers
POST /reports/answers HTTP/1.1
Content-Type: application/json
Authorization: Bearer accessToken
{
"auctionId" : 1,
"answerId" : 1,
"description" : "신고합니다."
}
-
헤더
이름 설명 필수 Authorization 회원 Bearer 인증 정보
액세스 토큰으로 인증 요청O -
본문
이름 타입 설명 필수 auctionId Number 질문의 경매 ID O answerId Number 신고할 답변 ID O description String 신고 내용 O
response
HTTP/1.1 201 Created
Location: /auctions/1/questions
request
GET
/reports/answers
GET /reports/answers HTTP/1.1
Content-Type: application/json
response
HTTP/1.1 200 OK
Content-Type: application/json
{
"reports" : [ {
"id" : 1,
"reporter" : {
"id" : 2,
"name" : "구매자1"
},
"createdTime" : "2023-10-15T21:12:27",
"answer" : {
"id" : 1
},
"description" : "신고합니다."
}, {
"id" : 2,
"reporter" : {
"id" : 2,
"name" : "구매자1"
},
"createdTime" : "2023-10-15T21:12:27",
"answer" : {
"id" : 2
},
"description" : "신고합니다."
}, {
"id" : 3,
"reporter" : {
"id" : 2,
"name" : "구매자1"
},
"createdTime" : "2023-10-15T21:12:27",
"answer" : {
"id" : 3
},
"description" : "신고합니다."
} ]
}
-
본문
이름 타입 설명 필수 reports.[] Array 모든 답변 신고 목록 O reports.[].id Number 답변 신고 글 ID O reports.[].reporter.id Number 답변을 신고한 사용자의 ID O reports.[].reporter.name String 답변을 신고한 사용자의 이름 O reports.[].createdTime String 답변 신고 시간 O reports.[].answer.id Number 신고한 답변 ID O reports.[].description String 신고 내용 O