사용자 가입 및 로그인(비로그인 가능)

회원가입

HTTP request

POST /auth/signup HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Content-Length: 82
Host: localhost:8080

{
  "signUpId" : "userId",
  "password" : "password1234",
  "userRole" : "BUYER"
}

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Request fields

필드명 타입 필수값 설명 제약사항

signUpId

String

true

회원가입을 진행할 아이디

password

String

true

회원가입을 진행할 패스워드

userRole

String

true

거래 권한 설정 (구매자 또는 판매자)

BUYER or SELLER

로그인

HTTP request

POST /auth/signin HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Content-Length: 54
Host: localhost:8080

{
  "signInId" : "userId",
  "password" : "password"
}

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 23

{
  "role" : "SELLER"
}

Request fields

필드명 타입 필수값 설명 제약사항

signInId

String

true

사용자가 입력한 아이디

password

String

true

사용자가 입력한 패스워드

Response fields

필드명 타입 필수값 양식 설명

role

String

true

사용자의 거래 권한 (구매자 또는 판매자)

로그아웃

HTTP request

POST /auth/signout HTTP/1.1
Host: localhost:8080
Cookie: JSESSIONID=sessionId
Content-Type: application/x-www-form-urlencoded

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

포인트(구매자, 판매자 권한 필요)

포인트 충전

HTTP request

POST /payments/points/charge HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 22
Host: localhost:8080
Cookie: JSESSIONID=sessionId

{
  "amount" : 10000
}

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Request cookies

Name Description

JSESSIONID

세션 ID

Request fields

필드명 타입 필수값 설명 제약사항

amount

Number

true

충전할 포인트 금액

Long.MAX_VALUE까지 충전 가능

경매: 사용자(비로그인도 조회 가능)

경매 목록 조회

HTTP request

GET /auctions?offset=0&size=2 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Host: localhost:8080

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 330

[ {
  "id" : 1,
  "title" : "쓸만한 경매품 1",
  "price" : 2000,
  "startedAt" : "2024-08-27T14:44:34.150396",
  "finishedAt" : "2024-08-27T15:14:34.150405"
}, {
  "id" : 2,
  "title" : "쓸만한 경매품 2",
  "price" : 4000,
  "startedAt" : "2024-08-27T14:44:34.150427",
  "finishedAt" : "2024-08-27T15:14:34.150429"
} ]

Query parameters

Parameter Description

offset

조회를 시작할 순서

size

조회할 페이지 크기

Response fields

필드명 타입 필수값 양식 설명

[].id

Number

true

경매 상품 ID

[].title

String

true

경매 상품 이름

[].price

Number

true

경매 상품 가격

[].startedAt

String

true

경매 시작 시간

[].finishedAt

String

true

경매 종료 시간

경매 상세 조회(고정 할인 정책 조회)

HTTP request

GET /auctions/1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Accept: application/json
Host: localhost:8080

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 397

{
  "auctionId" : 1,
  "sellerId" : 2,
  "productName" : "테스트 상품",
  "originPrice" : 10000,
  "currentPrice" : 5000,
  "originStock" : 100,
  "currentStock" : 100,
  "maximumPurchaseLimitCount" : 10,
  "pricePolicy" : {
    "type" : "CONSTANT",
    "variationWidth" : 10
  },
  "variationDuration" : "PT1M",
  "startedAt" : "2024-08-15T14:18:00",
  "finishedAt" : "2024-08-15T15:18:00"
}

Path parameters

Table 1. /auctions/{auctionId}
Parameter Description

auctionId

상세 조회 할 경매의 ID

Response fields

필드명 타입 필수값 양식 설명

auctionId

Number

true

경매 ID

sellerId

Number

true

판매자 ID

productName

String

true

상품 이름

originPrice

Number

true

상품 원가

currentPrice

Number

true

현재 가격

originStock

Number

true

재고를 보여주지 않는다면 NULL이고 응답 값에서 제외됨

원래 재고

currentStock

Number

true

재고를 보여주지 않는다면 NULL이고 응답 값에서 제외됨

현재 재고

maximumPurchaseLimitCount

Number

true

최대 구매 수량 제한

pricePolicy

Object

true

가격 정책

pricePolicy.type

String

true

가격 정책 타입

pricePolicy.variationWidth

Number

true

절대 변동 폭

variationDuration

String

true

가격 변동 주기

startedAt

String

true

경매 시작 시간

finishedAt

String

true

경매 종료 시간

경매 상세 조회(퍼센트 할인 정책 조회)

HTTP request

GET /auctions/1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Accept: application/json
Host: localhost:8080

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 399

{
  "auctionId" : 1,
  "sellerId" : 2,
  "productName" : "테스트 상품",
  "originPrice" : 10000,
  "currentPrice" : 5000,
  "originStock" : 100,
  "currentStock" : 100,
  "maximumPurchaseLimitCount" : 10,
  "pricePolicy" : {
    "type" : "PERCENTAGE",
    "discountRate" : 10.0
  },
  "variationDuration" : "PT1M",
  "startedAt" : "2024-08-15T14:18:00",
  "finishedAt" : "2024-08-15T15:18:00"
}

Path parameters

Table 1. /auctions/{auctionId}
Parameter Description

auctionId

상세 조회 할 경매의 ID

Response fields

필드명 타입 필수값 양식 설명

auctionId

Number

true

경매 ID

sellerId

Number

true

판매자 ID

productName

String

true

상품 이름

originPrice

Number

true

상품 원가

currentPrice

Number

true

현재 가격

originStock

Number

true

재고를 보여주지 않는다면 NULL이고 응답 값에서 제외됨

원래 재고

currentStock

Number

true

재고를 보여주지 않는다면 NULL이고 응답 값에서 제외됨

현재 재고

maximumPurchaseLimitCount

Number

true

최대 구매 수량 제한

pricePolicy

Object

true

가격 정책

pricePolicy.type

String

true

가격 정책 타입

pricePolicy.discountRate

Number

true

가격 변동 할인율

variationDuration

String

true

가격 변동 주기

startedAt

String

true

경매 시작 시간

finishedAt

String

true

경매 종료 시간

경매: 판매자(판매자 권한 필요)

경매 등록(고정 할인 정책)

HTTP request

POST /auctions HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 338
Host: localhost:8080
Cookie: JSESSIONID=sessionId

{
  "productName" : "productName",
  "originPrice" : 10000,
  "stock" : 100,
  "maximumPurchaseLimitCount" : 10,
  "pricePolicy" : {
    "type" : "CONSTANT",
    "variationWidth" : 100
  },
  "variationDuration" : "PT10M",
  "startedAt" : "2024-08-27T15:44:34.42135",
  "finishedAt" : "2024-08-27T16:44:34.42135",
  "isShowStock" : true
}

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Request cookies

Name Description

JSESSIONID

세션 ID

Request fields

필드명 타입 필수값 설명 제약사항

productName

String

true

상품 이름

originPrice

Number

true

상품 원가

stock

Number

true

상품 재고

maximumPurchaseLimitCount

Number

true

최대 구매 제한 수량

pricePolicy

Object

true

가격 정책

pricePolicy.type

String

true

가격 정책 타입

pricePolicy.variationWidth

Number

true

절대 가격 정책시 가격 절대 변동폭

variationDuration

String

true

경매 기간

isShowStock

Boolean

true

재고 노출 여부

startedAt

String

true

경매 시작 시간

finishedAt

String

true

경매 종료 시간

isShowStock

Boolean

true

재고 노출 여부

경매 등록(퍼센트 할인 정책)

HTTP request

POST /auctions HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 341
Host: localhost:8080
Cookie: JSESSIONID=sessionId

{
  "productName" : "productName",
  "originPrice" : 10000,
  "stock" : 100,
  "maximumPurchaseLimitCount" : 10,
  "pricePolicy" : {
    "type" : "PERCENTAGE",
    "discountRate" : 10.0
  },
  "variationDuration" : "PT10M",
  "startedAt" : "2024-08-27T15:44:34.398981",
  "finishedAt" : "2024-08-27T16:44:34.398981",
  "isShowStock" : true
}

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Request cookies

Name Description

JSESSIONID

세션 ID

Request fields

필드명 타입 필수값 설명 제약사항

productName

String

true

상품 이름

originPrice

Number

true

상품 원가

stock

Number

true

상품 재고

maximumPurchaseLimitCount

Number

true

최대 구매 제한 수량

pricePolicy

Object

true

가격 정책

pricePolicy.type

String

true

가격 정책 타입

pricePolicy.discountRate

Number

true

퍼센트 가격 정책시 가격 할인율

variationDuration

String

true

경매 기간

isShowStock

Boolean

true

재고 노출 여부

startedAt

String

true

경매 시작 시간

finishedAt

String

true

경매 종료 시간

isShowStock

Boolean

true

재고 노출 여부

경매 등록 취소

HTTP request

DELETE /auctions/1 HTTP/1.1
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Request cookies

Name Description

JSESSIONID

세션 ID

Path parameters

Table 1. /auctions/{auctionId}
Parameter Description

auctionId

취소할 경매 ID

경매 목록 조회

HTTP request

GET /auctions/seller?offset=10&size=2 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 502

[ {
  "id" : 1,
  "title" : "내가 판매하는 경매품 1",
  "originPrice" : 2000,
  "currentPrice" : 1500,
  "totalStock" : 100,
  "currentStock" : 30,
  "startedAt" : "2024-08-27T14:44:34.360629",
  "finishedAt" : "2024-08-27T15:14:34.360633"
}, {
  "id" : 2,
  "title" : "내가 판매하는 경매품 2",
  "originPrice" : 4000,
  "currentPrice" : 3500,
  "totalStock" : 200,
  "currentStock" : 60,
  "startedAt" : "2024-08-27T14:44:34.360652",
  "finishedAt" : "2024-08-27T15:14:34.360654"
} ]

Request cookies

Name Description

JSESSIONID

세션 ID

Query parameters

Parameter Description

offset

조회를 시작할 순서

size

조회할 페이지 크기

Response fields

필드명 타입 필수값 양식 설명

[].id

Number

true

경매 ID

[].title

String

true

경매 노출 제목

[].originPrice

Number

true

상품 원가

[].currentPrice

Number

true

현재 가격

[].totalStock

Number

true

총 재고

[].currentStock

Number

true

현재 남은 재고

[].startedAt

String

true

경매 시작 시간

[].finishedAt

String

true

경매 종료 시간

경매 상세 조회(고정 할인 정책 조회)

HTTP request

GET /auctions/1/seller HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 420

{
  "auctionId" : 1,
  "productName" : "쓸만한 경매품",
  "originPrice" : 10000,
  "currentPrice" : 8000,
  "originStock" : 100,
  "currentStock" : 50,
  "maximumPurchaseLimitCount" : 10,
  "pricePolicy" : {
    "type" : "CONSTANT",
    "variationWidth" : 10
  },
  "variationDuration" : "PT10M",
  "startedAt" : "2024-08-27T14:44:34.322866",
  "finishedAt" : "2024-08-27T15:44:34.322869",
  "isShowStock" : true
}

Request cookies

Name Description

JSESSIONID

세션 ID

Path parameters

Table 1. /auctions/{auctionId}/seller
Parameter Description

auctionId

조회할 경매 ID

Response fields

필드명 타입 필수값 양식 설명

auctionId

Number

true

경매 ID

productName

String

true

상품 이름

originPrice

Number

true

상품 원가

currentPrice

Number

true

현재 가격

originStock

Number

true

원래 재고

currentStock

Number

true

현재 재고

maximumPurchaseLimitCount

Number

true

최대 구매 수량 제한

pricePolicy.type

String

true

가격 정책 유형

pricePolicy.variationWidth

Number

true

가격 변동 폭(고정 할인 정책)

variationDuration

String

true

가격 변동 주기(분)

startedAt

String

true

경매 시작 시간

finishedAt

String

true

경매 종료 시간

isShowStock

Boolean

true

재고 표시 여부

경매 상세 조회(퍼센트 할인 정책 조회)

HTTP request

GET /auctions/1/seller HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 422

{
  "auctionId" : 1,
  "productName" : "쓸만한 경매품",
  "originPrice" : 10000,
  "currentPrice" : 8000,
  "originStock" : 100,
  "currentStock" : 50,
  "maximumPurchaseLimitCount" : 10,
  "pricePolicy" : {
    "type" : "PERCENTAGE",
    "discountRate" : 10.0
  },
  "variationDuration" : "PT10M",
  "startedAt" : "2024-08-27T14:44:34.340307",
  "finishedAt" : "2024-08-27T15:44:34.340312",
  "isShowStock" : true
}

Request cookies

Name Description

JSESSIONID

세션 ID

Path parameters

Table 1. /auctions/{auctionId}/seller
Parameter Description

auctionId

조회할 경매 ID

Response fields

필드명 타입 필수값 양식 설명

auctionId

Number

true

경매 ID

productName

String

true

상품 이름

originPrice

Number

true

상품 원가

currentPrice

Number

true

현재 가격

originStock

Number

true

원래 재고

currentStock

Number

true

현재 재고

maximumPurchaseLimitCount

Number

true

최대 구매 수량 제한

pricePolicy.type

String

true

가격 정책 유형

pricePolicy.discountRate

Number

true

가격 변동 폭(퍼센트 할인 정책)

variationDuration

String

true

가격 변동 주기(분)

startedAt

String

true

경매 시작 시간

finishedAt

String

true

경매 종료 시간

isShowStock

Boolean

true

재고 표시 여부

경매: 구매자(구매자 권한 필요)

경매 입찰

HTTP request

POST /auctions/1/purchase HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 40
Host: localhost:8080
Cookie: JSESSIONID=sessionId

{
  "price" : 10000,
  "quantity" : 20
}

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 58

{
  "receiptId" : "998e6fcb-74bf-4e7b-8752-2d09686bca89"
}

Request cookies

Name Description

JSESSIONID

세션 ID

Path parameters

Table 1. /auctions/{auctionId}/purchase
Parameter Description

auctionId

입찰한 경매의 ID

Request fields

필드명 타입 필수값 설명 제약사항

price

Number

true

입찰을 희망하는 가격

quantity

Number

true

입찰을 희망하는 수량

Response fields

필드명 타입 필수값 양식 설명

receiptId

String

true

구매 완료된 영수증의 id값 (UUID)

경매 환불

HTTP request

PUT /receipts/4a8e6fb5-6dc9-4fbd-9d03-5098c4e24f26/refund HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

Request cookies

Name Description

JSESSIONID

세션 ID

Path parameters

Table 1. /receipts/{receiptId}/refund
Parameter Description

receiptId

환불할 경매의 영수증 ID

거래 이력

구매자 거래 목록 조회(구매자 권한 필요)

HTTP request

GET /receipts/buyer?offset=3&size=10 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 536

[ {
  "id" : "fd6017f1-90dd-460f-a498-999cbf28951d",
  "auctionId" : 1,
  "type" : "PURCHASED",
  "productName" : "내가 구매한 상품1",
  "quantity" : 10,
  "price" : 1000
}, {
  "id" : "11481b00-0a5a-4fb7-9aad-c3216f9fb9fd",
  "auctionId" : 2,
  "type" : "REFUND",
  "productName" : "내가 구매한 상품2",
  "quantity" : 20,
  "price" : 2000
}, {
  "id" : "391fc8ad-79fd-4a6b-8616-f63ec7b8e182",
  "auctionId" : 3,
  "type" : "PURCHASED",
  "productName" : "내가 구매한 상품3",
  "quantity" : 30,
  "price" : 3000
} ]

Request cookies

Name Description

JSESSIONID

세션 ID

Query parameters

Parameter Description

offset

조회를 시작할 순서

size

조회할 페이지 크기

Response fields

필드명 타입 필수값 양식 설명

[].id

String

true

거래 내역 ID (UUID)

[].auctionId

Number

true

구매한 경매의 ID

[].type

String

true

거래 타입 (구매완료, 환불완료)

[].productName

String

true

상품명

[].quantity

Number

true

구매 수량

[].price

Number

true

구매 가격

판매자 거래 목록 조회(판매자 권한 필요)

HTTP request

GET /receipts/seller?offset=3&size=10 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 533

[ {
  "id" : "16d9a1c9-ea02-4111-9c6d-01f5f9ab675e",
  "auctionId" : 1,
  "type" : "REFUND",
  "productName" : "내가 판매한 상품1",
  "price" : 1000,
  "quantity" : 10
}, {
  "id" : "948b82a3-6555-4a64-924c-c40405b2bfcb",
  "auctionId" : 2,
  "type" : "PURCHASED",
  "productName" : "내가 판매한 상품2",
  "price" : 2000,
  "quantity" : 20
}, {
  "id" : "5979f98d-142d-4d54-8429-13a62e84f4e3",
  "auctionId" : 3,
  "type" : "REFUND",
  "productName" : "내가 판매한 상품3",
  "price" : 3000,
  "quantity" : 30
} ]

Request cookies

Name Description

JSESSIONID

세션 ID

Query parameters

Parameter Description

offset

조회를 시작할 순서

size

조회할 페이지 크기

Response fields

필드명 타입 필수값 양식 설명

[].id

String

true

거래 내역 ID (UUID)

[].auctionId

Number

true

구매한 경매의 ID

[].type

String

true

거래 타입 (구매완료, 환불완료)

[].productName

String

true

상품명

[].quantity

Number

true

구매 수량

[].price

Number

true

구매 가격

거래 상세 조회(판매자, 구매자 권한 필요)

HTTP request

GET /receipts/d9a5afeb-4154-4c54-9592-30cf33265ca3 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Cookie: JSESSIONID=sessionId

HTTP response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 304

{
  "receiptId" : "d9a5afeb-4154-4c54-9592-30cf33265ca3",
  "productName" : "상품명",
  "price" : 1000,
  "quantity" : 1,
  "receiptStatus" : "PURCHASED",
  "auctionId" : 1,
  "sellerId" : 1,
  "buyerId" : 2,
  "createdAt" : "2024-08-27T14:44:34.259177",
  "updatedAt" : "2024-08-27T15:44:34.259182"
}

Request cookies

Name Description

JSESSIONID

세션 ID

Path parameters

Table 1. /receipts/{receiptId}
Parameter Description

receiptId

조회할 거래내역 ID

Response fields

필드명 타입 필수값 양식 설명

receiptId

String

true

거래 내역 ID

productName

String

true

상품명

price

Number

true

구매 가격

quantity

Number

true

구매 수량

receiptStatus

String

true

입찰 상태 (구매완료, 환불완료)

auctionId

Number

true

경매 ID

sellerId

Number

true

판매자 ID

buyerId

Number

true

구매자 ID

createdAt

String

true

경매 입찰 시간

updatedAt

String

true

경매 마지막 수정 시간

에러 코드

Error code

코드 코드명

A000

경매 재고는 인당 구매 수량보다 작을 수 없습니다.

A001

상품 이름은 비어있을 수 없습니다.

A002

상품 원가는 0과 같거나 작을 수 없습니다.

A003

최대 구매 수량 제한은 0과 같거나 작을 수 없습니다.

A004

가격 변동폭은 0과 같거나 작을 수 없습니다.

A005

변동 시간 단위는 0과 같거나 작을 수 없습니다.

A006

경매의 시작 시간은 종료 시간보다 클 수 없습니다.

A007

경매 생성 시, 경매 지속시간이 60분을 넘기는 경우 예외가 발생합니다.

A008

경매 가격 변동폭은 경매 가격보다 낮아야 합니다.

A009

경매 생성 시, 할인율이 0퍼센트 미만이거나 50 퍼센트를 초과한 경우 예외가 발생합니다.

A010

경매 조회 시, 경매를 찾을 수 없는 경우 예외가 발생합니다.

A011

경매 정보 생성 시, 현재 가격은 0과 같거나 작을 경우 예외가 발생합니다.

A012

경매 입찰 시, 최대 가능 수량은 넘지 않지만, 남아있는 재고가 부족한 경우 예외가 발생합니다. (비즈니스적 예외가 아니라 200응답으로 반환됩니다.

A013

진행 중이지 않은 경매를 입찰하려고 할 때, 예외가 발생합니다.

A014

경매 생성 시, 경매 시작 시간이 현재 시간보다 이른 경우 예외가 발생합니다.

A015

환불로 인한 재고 변경 시, 추가 및 삭제하는 재고량이 1 미만일 경우 예외가 발생합니다.

A016

환불로 인한 재고 변경 시, 변경 후의 재고가 원래 재고보다 많을 경우 예외가 발생합니다.

A017

경매 취소 시, 사용자 역할이 판매자가 아닌 경우 예외가 발생합니다.

A018

경매 취소 시, 경매를 생성한 판매자와 경매 취소 요청 사용자가 다를 경우 예외가 발생합니다.

A019

경매 취소 시, 경매가 준비중인 상태가 아닐때 예외가 발생합니다.

A020

경매 상세 조회 시, 요청한 판매자가 경매의 판매자가 아닐 경우 예외가 발생합니다.

A021

경매 생성 시, 가격 변동 정책이 적용된 경매에서 최대 할인가를 적용했을떄 최소 가격 이하로 떨어지는 경우 예외가 발생합니다.

A022

경매 입찰 진행 시, 현재 상품의 가격과 사용자가 구매 요청한 가격이 다를때 예외가 발생합니다.

A023

가격 정책 객체를 JSON으로 변환 시, 변환이 불가능할 경우 예외가 발생합니다.

A024

JSON을 가격 정책 객체로 변환 시, 타입이 올바르지 않을 경우 예외가 발생합니다.

A025

JSON을 가격 정책 객체로 변환 시, 변환이 불가능할 경우 예외가 발생합니다.

A026

경매 입찰 요청 시, 요청 가격이 0보다 작으면 예외가 발생합니다.

A027

경매 입찰 요청 시, 요청 수량이 1 미만일 경우 예외가 발생합니다.

A028

경매 생성 시, 경매 지속 시간에서 경매 할인 주기 시간을 나누었을때, 나누어 떨어지지 않는 경우 예외가 발생합니다.

A029

경매 생성 시, 경매 지속 시간이 정확히 분 단위가 아닌 경우 예외가 발생합니다.

A030

경매 입찰 요청 시, 최대 가능 수량을 넘기거나 0이하의 수량을 구매하려고 할때 예외가 발생합니다.

R000

거래 내역 조회 시, 거래 내역을 찾을 수 없을 경우 예외가 발생합니다.

R001

거래 내역 조회 시, 사용자가 해당 거래의 구매자 또는 판매자가 아닌 경우 예외가 발생합니다.

R002

환불 시, 이미 환불된 거래 내역일 경우 예외가 발생합니다.

M000

로그인(회원가입) 시, 이미 존재하는 회원 아이디로 로그인을 시도한 경우 예외가 발생합니다.

M001

로그인(회원가입) 시, 사용자의 역할(구매자, 판매자)를 찾을 수 없는 경우 예외가 발생합니다.

M002

사용자 조회 시, 사용자를 찾을 수 없는 경우 예외가 발생합니다.

M003

로그인 시, 입력 패스워드와 실제 패스워드가 다른 경우 예외가 발생합니다.

M004

회원가입 시, 사용자 아이디가 비어있는 경우 예외가 발생합니다.

M005

회원가입 시, 사용자 아이디가 글자수 제한 정책에 맞지 않으면 예외가 발생합니다.

M006

회원가입 시, 비밀번호가 빈칸 또는 공백인 경우 예외가 발생합니다.

M007

회원가입 시, 비밀번호는 8자 이상 20자 이하가 아닌 경우 예외가 발생합니다.

M008

회원가입 시, 비밀번호에 숫자가 포함되어 있지 않은 경우 예외가 발생합니다.

M009

회원가입 시, 비밀번호에 알파벳 소문자가 포함되어 있지 않은 경우 예외가 발생합니다.

M010

회원가입 시, 비밀번호에 영문자와 숫자 외에 다른 문자가 포함되어 있는 경우 예외가 발생합니다.

P000

구매 시, 로그인한 사용자가 구매자가 아닌 경우 예외가 발생합니다.

P001

구매 시, 사용자의 포인트가 부족한 경우 예외가 발생합니다.

P002

거래 내역 조회 시, 거래 내역을 찾을 수 없을 경우 예외가 발생합니다.

P004

환불 시, 요청한 사용자가 환불할 거래의 구매자가 아닌 경우 예외가 발생합니다.

P005

포인트 충전 시, 충전할 포인트가 0보다 작을 경우 예외가 발생합니다.

P006

포인트 충전 시, 충전 후 포인트가 Long 최대값을 초과할 경우 예외가 발생합니다.

P007

환불 요청 시, 종료된 경매에 대한 환불이 아닌 경우 예외가 발생합니다.

P008

포이늩 연산 시, 음수 값을 연산에 사용하는 경우 예외가 발생합니다.

AU00

API 요청 시, 비로그인 사용자가 허락되지 않은 엔드포인트에 접근 할 경우 예외가 발생합니다.

AU01

API 요청 시, 판매자가 아닌 사람이 판매자만 접근할 수 있는 엔드포인트에 접근 할 경우 예외가 발생합니다.

AU02

API 요청 시, 구매자가 아닌 사람이 구매자만 접근할 수 있는 엔드포인트에 접근 할 경우 예외가 발생합니다.

AU03

API 요청 시, Roles에 명시된 권한을 하나라도 갖지 않은 사용자가 엔드포인트에 접근 할 경우 예외가 발생합니다.

G000

DTO 생성 시, 필드의 값이 NULL인 경우 예외가 발생합니다.

G001

목록 조회시, 과도한 데이터를 조회할 수 없습니다.

G002

Lock 획득 시, TimeOut 시간을 초과하면 예외가 발생합니다.

G003

Lock 획득 시, 시스템 문제로 락을 획득하지 못한 경우 예외가 발생합니다.

SERVER_ERROR

서버에서 예기치 못한 예외가 발생한 경우