Account(계좌,결제수단) [길재현]
특정 회원의 결제수단 목록 조회
/accounts/customers/{customerId}
paging 관련 파라미터도 줄 수있다. [주지않을시 기본값 페이지 크기 10]
HTTP Request
GET /accounts/customers/1?page=0&size=10 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 838
{
"totalElements" : 2,
"totalPages" : 1,
"size" : 10,
"content" : [ {
"accountId" : 1,
"customerId" : 1,
"accountNumber" : "42750204039102",
"bankCode" : "004",
"createdAt" : "2024-08-08T11:05:09.0949324"
}, {
"accountId" : 2,
"customerId" : 1,
"accountNumber" : "42750204039103",
"bankCode" : "090",
"createdAt" : "2024-08-08T11:05:09.0949324"
} ],
"number" : 0,
"sort" : {
"empty" : false,
"unsorted" : false,
"sorted" : true
},
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : false,
"unsorted" : false,
"sorted" : true
},
"offset" : 0,
"unpaged" : false,
"paged" : true
},
"first" : true,
"last" : true,
"numberOfElements" : 2,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
계좌 목록 |
|
|
계좌 ID |
|
|
고객 ID |
|
|
계좌 번호 |
|
|
은행 코드 |
|
|
생성 일시 |
|
|
페이지 정보 |
|
|
정렬 정보 |
|
|
정렬 정보가 비어있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
오프셋 |
|
|
페이지된 여부 |
|
|
페이지되지 않은 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
마지막 페이지 여부 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬 정보가 비어있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
현재 페이지의 요소 수 |
|
|
첫 페이지 여부 |
|
|
결과가 비어있는지 여부 |
계좌 생성
/accounts/customers/{customerId}
HTTP Request
POST /accounts/customers/1 HTTP/1.1
Content-Type: application/json
Content-Length: 65
Host: localhost:8080
{
"accountNumber" : "42750204039102",
"bankCode" : "004"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 16
success id : 100
계좌 수정
/accounts/{accountId}
HTTP Request
PUT /accounts/1 HTTP/1.1
Content-Type: application/json
Content-Length: 61
Host: localhost:8080
{
"accountNumber" : "1234567890",
"bankCode" : "004"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
계좌 삭제
/accounts/{accountId}
HTTP Request
DELETE /accounts/1 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
AccountAuth(계좌 검증) By SellutionPG [길재현]
실제 계좌 주인 조회
/accounts/auth/check-account
은행코드 , 계좌번호를 입력받아 Sellution-Pg 서버의 API를 이용하여 계좌주인을 조회한다.
HTTP Request
POST /accounts/auth/check-account?_csrf=1YUf6rt17J_Qz3mNIqO1aolgOnf4jbhtYwwzWwyxdJPhsmwi5OMujNlAiKv9qx-5FY6BD7gDF0_K7o1AAT5WaTmFEqTS0wgS HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 61
Host: localhost:8080
{
"bankCode" : "004",
"accountNumber" : "1234567890"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 38
{
"bankHolderName" : "홍길동"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
계좌 소유주 이름 |
Address(주소) [이재아]
특정 회원의 주소 목록 조회
/addresses/customer/{customerId}
HTTP Request
GET /addresses/customer/1 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 483
[ {
"addressId" : 1,
"addressName" : "집",
"isDefaultAddress" : "Y",
"name" : "홍길동",
"zipcode" : "12345",
"phoneNumber" : "01012345678",
"streetAddress" : "서울시 강남구",
"addressDetail" : "123-456"
}, {
"addressId" : 2,
"addressName" : "회사",
"isDefaultAddress" : "N",
"name" : "홍길동",
"zipcode" : "67890",
"phoneNumber" : "01087654321",
"streetAddress" : "서울시 서초구",
"addressDetail" : "789-012"
} ]
Response Fields
Path | Type | Description |
---|---|---|
|
|
주소 목록 |
|
|
주소 ID |
|
|
주소 이름 |
|
|
기본 주소 여부 |
|
|
수령인 이름 |
|
|
전화번호 |
|
|
우편번호 |
|
|
도로명 주소 |
|
|
상세 주소 |
주소 상세 정보 조회
/addresses/{addressId}
HTTP Request
GET /addresses/1 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 238
{
"customerId" : 1,
"addressName" : "집",
"name" : "홍길동",
"phoneNumber" : "01012345678",
"zipcode" : "12345",
"streetAddress" : "서울시 강남구",
"addressDetail" : "123-456",
"isDefaultAddress" : "Y"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
고객 ID |
|
|
주소 이름 |
|
|
수령인 이름 |
|
|
전화번호 |
|
|
우편번호 |
|
|
도로명 주소 |
|
|
상세 주소 |
|
|
기본 주소 여부 |
새로운 주소 생성
/addresses
HTTP Request
POST /addresses HTTP/1.1
Content-Type: application/json
Content-Length: 245
Host: localhost:8080
{
"customerId" : 1,
"addressName" : "새 주소",
"name" : "홍길동",
"phoneNumber" : "01012345678",
"zipcode" : "12345",
"streetAddress" : "서울시 강남구",
"addressDetail" : "123-456",
"isDefaultAddress" : "N"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1
1
Request Fields
Path | Type | Description |
---|---|---|
|
|
고객 ID |
|
|
주소 이름 |
|
|
수령인 이름 |
|
|
전화번호 |
|
|
우편번호 |
|
|
도로명 주소 |
|
|
상세 주소 |
|
|
기본 주소 여부 |
주소 수정
/addresses/{addressId}
HTTP Request
PUT /addresses/1 HTTP/1.1
Content-Type: application/json
Content-Length: 251
Host: localhost:8080
{
"customerId" : 1,
"addressName" : "수정된 주소",
"name" : "홍길동",
"phoneNumber" : "01012345678",
"zipcode" : "12345",
"streetAddress" : "서울시 강남구",
"addressDetail" : "123-456",
"isDefaultAddress" : "Y"
}
HTTP Response
HTTP/1.1 204 No Content
Request Fields
Path | Type | Description |
---|---|---|
|
|
고객 ID |
|
|
주소 이름 |
|
|
수령인 이름 |
|
|
전화번호 |
|
|
우편번호 |
|
|
도로명 주소 |
|
|
상세 주소 |
|
|
기본 주소 여부 |
주소 삭제
/addresses/{addressId}
HTTP Request
DELETE /addresses/1 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 204 No Content
Company(회사) API [이재아]
회사 URL 설정 조회
GET /url-setting/{companyId}
회사 URL 설정을 조회합니다.
Path Parameters
Parameter | Description |
---|---|
|
회사 ID |
HTTP Request
GET /url-setting/1?_csrf=JBNzEMUShhx7p3OicuHjGjpkBm81gKJwCozCWk8kjtqPwpw-ECMWKfwkty5WkRaRQMzXKwtdKw4MssBdMummPisdt-i9pKUN HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 193
{
"companyId" : 1,
"name" : "TestCompany",
"shopUrl" : "https://www.sellution.com/shopping/TestCompany",
"isShopVisible" : "Y",
"qrCodeUrl" : "https://example.com/qr-code.png"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
회사명 |
|
|
쇼핑몰 URL |
|
|
쇼핑몰 공개 여부 |
|
|
QR 코드 URL |
회사 URL 설정 업데이트
PUT /url-setting
회사 URL 설정을 업데이트합니다.
HTTP Request
PUT /url-setting?_csrf=2s3_jnVhaRYH_lP4B2ILZZipZqT0_RfB_zSCqwf_0_O_MirD4vrIuhBQWiEqxzLOZU8_UqueS8aWzS7sxwKzyTPL58eOV0v1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 79
Host: localhost:8080
{
"companyId" : 1,
"name" : "UpdatedCompany",
"isShopVisible" : "N"
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
회사명 |
|
|
쇼핑몰 공개 여부 |
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
회사 디스플레이 설정 조회
GET /display-setting/{companyId}
회사 디스플레이 설정을 조회합니다.
Path Parameters
Parameter | Description |
---|---|
|
회사 ID |
HTTP Request
GET /display-setting/1?_csrf=wOhorbaa_Pe0oLxX-MrGwkIS3M-mX2scoXhkRrshVK0me1eqpt5fyYb7z8-ZwYo1z-fy8SQq8faSOV4xlR5Xdt5FZchAH2fP HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 363
{
"companyId" : 1,
"displayName" : "TestDisplay",
"logoImageUrl" : "logo.jpg",
"promotionImageUrls" : [ "promo1.jpg", "promo2.jpg" ],
"serviceType" : "BOTH",
"themeColor" : "#FFFFFF",
"mainPromotion1Title" : "Promo 1",
"mainPromotion1Content" : "Content 1",
"mainPromotion2Title" : "Promo 2",
"mainPromotion2Content" : "Content 2"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
디스플레이 이름 |
|
|
로고 이미지 URL |
|
|
프로모션 이미지 URL 목록 |
|
|
서비스 타입 |
|
|
테마 색상 |
|
|
메인 프로모션 1 제목 |
|
|
메인 프로모션 1 내용 |
|
|
메인 프로모션 2 제목 |
|
|
메인 프로모션 2 내용 |
회사 디스플레이 설정 생성
POST /display-setting
회사 디스플레이 설정을 생성합니다.
HTTP Request
POST /display-setting HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=logoFile; filename=logo.jpg
Content-Type: image/jpeg
logo content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=promotionFiles; filename=promo1.jpg
Content-Type: image/jpeg
promo1 content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json
{"companyId":1,"displayName":"NewDisplay","logoImageUrl":null,"promotionImageUrls":null,"themeColor":"#FFFFFF","mainPromotion1Title":"Promo1","mainPromotion1Content":"Content1","mainPromotion2Title":"Promo2","mainPromotion2Content":"Content2"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Parts
Part | Description |
---|---|
|
로고 파일 |
|
프로모션 이미지 파일 |
|
회사 디스플레이 설정 정보 |
Request Part Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
디스플레이 이름 |
|
|
로고 이미지 URL |
|
|
프로모션 이미지 URL 목록 |
|
|
테마 색상 |
|
|
메인 프로모션 1 제목 |
|
|
메인 프로모션 1 내용 |
|
|
메인 프로모션 2 제목 |
|
|
메인 프로모션 2 내용 |
HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
회사 디스플레이 설정 업데이트
PUT /display-setting
회사 디스플레이 설정을 업데이트합니다.
HTTP Request
PUT /display-setting HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json
{"companyId":1,"displayName":"UpdatedDisplay","logoImageUrl":null,"promotionImageUrls":null,"themeColor":null,"mainPromotion1Title":null,"mainPromotion1Content":null,"mainPromotion2Title":null,"mainPromotion2Content":null}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=logoFile; filename=logo.jpg
Content-Type: image/jpeg
logo content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=promotionFiles; filename=promo1.jpg
Content-Type: image/jpeg
promo1 content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Parts
Part | Description |
---|---|
|
업데이트 요청 DTO |
|
로고 파일 |
|
프로모션 이미지 파일 |
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
회사 판매 설정 조회
GET /sale-setting/{companyId}
회사 판매 설정을 조회합니다.
Path Parameters
Parameter | Description |
---|---|
|
회사 ID |
HTTP Request
GET /sale-setting/1?_csrf=eKpwEzONVDWffN8V2rfrbi4__Q1MaY7714JX9VaajuBasLXjT88WcQbuMVSySLwk6prfC0gL0DV4WOjW77pmxW-svdVvgtPa HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 287
{
"companyId" : 1,
"serviceType" : "BOTH",
"sellType" : "ALL",
"subscriptionType" : "MONTH",
"categoryIds" : null,
"productIds" : null,
"minDeliveryCount" : null,
"maxDeliveryCount" : null,
"monthValues" : null,
"weekValues" : null,
"dayValues" : null
}
회사 판매 설정 생성
POST /sale-setting
회사 판매 설정을 생성합니다.
HTTP Request
POST /sale-setting?_csrf=UfkehSMZh-GGixPaZaTOgsJm_oZETLqtF_X38saqvU8zA30pMMAotxorvoOr6nC5BIn64_NU0-R9fNiAcc2Vl_7MjisLYE8b HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 305
Host: localhost:8080
{
"companyId" : 1,
"serviceType" : "BOTH",
"sellType" : "ALL",
"categories" : null,
"products" : null,
"subscriptionType" : "MONTH",
"minDeliveryCount" : 5,
"maxDeliveryCount" : 10,
"dayOptions" : [ "MON", "TUE" ],
"weekOptions" : [ 1, 2 ],
"monthOptions" : [ 1, 2, 3 ]
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
서비스 타입 |
|
|
판매 타입 |
|
|
구독 타입 |
|
|
최소 배송 횟수 |
|
|
최대 배송 횟수 |
|
|
월 옵션 |
|
|
주 옵션 |
|
|
요일 옵션 |
|
|
카테고리 ID 목록 |
|
|
상품 ID 목록 |
HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
회사 판매 설정 업데이트
PUT /sale-setting
회사 판매 설정을 업데이트합니다.
HTTP Request
PUT /sale-setting?_csrf=0UT_IuQOt_syJAevmJxoVrMy8IzcBMRuTKj87VPMoHMGyr-K6HPJF9dohMofEj7O-bFcZocL3e2_ZaJDLZrI1Wb_lEEy-Iez HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 305
Host: localhost:8080
{
"companyId" : 1,
"serviceType" : "BOTH",
"sellType" : "ALL",
"categories" : null,
"products" : null,
"subscriptionType" : "MONTH",
"minDeliveryCount" : 5,
"maxDeliveryCount" : 10,
"dayOptions" : [ "MON", "TUE" ],
"weekOptions" : [ 1, 2 ],
"monthOptions" : [ 1, 2, 3 ]
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
서비스 타입 |
|
|
판매 타입 |
|
|
구독 타입 |
|
|
최소 배송 횟수 |
|
|
최대 배송 횟수 |
|
|
월 옵션 |
|
|
주 옵션 |
|
|
요일 옵션 |
|
|
카테고리 ID 목록 |
|
|
상품 ID 목록 |
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
회사 정보 조회
GET /shopping-find-companyId/{companyName}
회사 정보를 조회합니다.
Path Parameters
Parameter | Description |
---|---|
|
회사명 |
HTTP Request
GET /shopping-find-companyId/TestCompany?_csrf=D60mVc-ZonlfMwigb6QaeWdTTJeP00xJ3zXO1S3PujYyp0IwachAZP6vlU1yUTqXCokuG1IxYfbs6i1k6Af-tx_43wYFxScD HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 525
{
"data" : {
"companyId" : 1,
"displayName" : "TestDisplay",
"name" : "TestCompany",
"logoImageUrl" : "logo.jpg",
"promotionImageUrls" : [ "promo1.jpg", "promo2.jpg" ],
"serviceType" : "BOTH",
"subscriptionType" : "MONTH",
"minDeliveryCount" : 5,
"maxDeliveryCount" : 30,
"themeColor" : "#FFFFFF",
"mainPromotion1Title" : "Promo 1",
"mainPromotion1Content" : "Content 1",
"mainPromotion2Title" : "Promo 2",
"mainPromotion2Content" : "Content 2"
}
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
회사명 |
|
|
디스플레이 이름 |
|
|
로고 이미지 URL |
|
|
프로모션 이미지 URL 목록 |
|
|
서비스 타입 |
|
|
구독 타입 |
|
|
최소 배송 횟수 |
|
|
최대 배송 횟수 |
|
|
테마 색상 |
|
|
메인 프로모션 1 제목 |
|
|
메인 프로모션 1 내용 |
|
|
메인 프로모션 2 제목 |
|
|
메인 프로모션 2 내용 |
Category(카테고리) [이재아]
카테고리 목록 조회
/categories
HTTP Request
GET /categories?companyId=1&isVisible=Y&page=0&size=10&_csrf=nu6bBE950KszithZYiktAXQ_ZLQ9h4a4jFL6yMnjjTQcSMWd-9mpZXoctZwevb5uBAQZOEAJSY0O5bGVvWTL-_rTtFZ4LPak HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 408
{
"totalElements" : 1,
"totalPages" : 1,
"size" : 1,
"content" : [ {
"categoryId" : 1,
"name" : "Test Category",
"productCount" : 5,
"isVisible" : "Y"
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : "INSTANCE",
"first" : true,
"last" : true,
"numberOfElements" : 1,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
카테고리 목록 |
|
|
카테고리 ID |
|
|
카테고리 이름 |
|
|
표시 여부 |
|
|
제품 수 |
|
|
페이지 정보 |
|
|
전체 요소 수 |
|
|
전체 페이지 수 |
|
|
마지막 페이지 여부 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬이 비어 있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
현재 페이지의 요소 수 |
|
|
첫 페이지 여부 |
|
|
빈 페이지 여부 |
카테고리 상세 조회
/categories/{categoryId}
HTTP Request
GET /categories/1?_csrf=n2Bjj_XK_5NJ047vSHitBg_c_lF1y_998nKaYzVJUJSlDm2L-llVusz5mqJktbzccVWZMD_v02hD-sxQl0upBlEqYqedb1m5 HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 98
{
"categoryId" : 1,
"name" : "Test Category",
"productCount" : 5,
"isVisible" : "Y"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
카테고리 ID |
|
|
카테고리 이름 |
|
|
표시 여부 |
|
|
제품 수 |
카테고리 이름 중복 확인
/categories/check
HTTP Request
GET /categories/check?name=Test+Category&_csrf=z2ajQxQUGcaGX3lwPEMCSa5rnI_kFSTQENCNJB8MoV-3xMCS_lObc3Ilf6erZkhEX242fplTsbbUIhH9KOLsQSlolm3Uoveh HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
카테고리 생성
/categories
HTTP Request
POST /categories?_csrf=LQkb6xgsHpgWzsdUbHfkpcGXhGZmA2qrq-FK4QoHBUcz_2gLTz8v23sUfK079qFjWlrQkqSvqV8EMFqGztMp1TwzNX4Cmwpt HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 51
Host: localhost:8080
{
"companyId" : 1,
"name" : "New Category"
}
HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
카테고리 수정
/categories/{categoryId}
HTTP Request
PUT /categories/1?_csrf=x7chYuLMGkzUotYkITR175ztBTyCbNu9FZLOYrjMu3gr_DJioYIWW9CueSr5keYSRxlBiqrcKAW6W7iQIKOqUN743ksdmlED HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 51
Host: localhost:8080
{
"companyId" : 1,
"name" : "New Category"
}
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
카테고리 삭제
/categories/{categoryId}
HTTP Request
DELETE /categories/1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=nga73n89fprhN_jiDTbNHgZUEzGCVB0JXaMZZ8QSFMc8k-Ugpmfdv0oLS_jMAM_WORv5LWNjPgnnY34ka5EhUqBzdfQE9oQW
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Category (카테고리) - 회원화면 [김현주]
사업체 Id로 isVisble이 Y인 카테고리 조회
/categories/company/{companyId}
HTTP Request
GET /categories/company/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 104
[ {
"categoryId" : 1,
"name" : "category1"
}, {
"categoryId" : 2,
"name" : "category2"
} ]
Response Fields
Path | Type | Description |
---|---|---|
|
|
카테고리 ID |
|
|
카테고리 이름 |
Easy Pwd (간편비밀번호) [길재현]
간편비밀번호 등록,재등록
/easy-pwd/customer/{customerId}
HTTP Request
POST /easy-pwd/customer/1?_csrf=tQ2yONQTfnCp6O6Q4MprIox8iSbAZgS-Lxcky0RYMC0R5he-h27RDOQmTkaEjNygg-dfFLpEpB_3AmGTHXMS-XQ9UR4i0CCG HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 29
Host: localhost:8080
{
"password" : "123456"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
success
간편비밀번호 검증
/customer/{customerId}/verify
HTTP Request
POST /easy-pwd/customer/1/verify?_csrf=slxiWzuVMkO1Vw1b368cZwarb38I7cyhLjt2Wpm-fDtFW4NkhWQBP1qtU3aYMTk-u4IoBDTPQh5r2viMHAlBOfzaGQp3OLNc HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 29
Host: localhost:8080
{
"password" : "123456"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
success
해당 회원이 간편비밀번호 있는지 확인
/customer/{customerId}/check
HTTP Request
GET /easy-pwd/customer/1/check?_csrf=3m4HJ_FOeV_otFke0lUQiXzO1SAwTyuet1Zc4TLVWPeZ7nmfuggyFsB2T2zF0jgu43gk7xr_-EEFeEmzgDJt0ADta8GpjRuo HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: text/plain;charset=UTF-8
Content-Length: 4
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
true
Order(주문) [길재현]
고객의 주문 목록 조회
/orders/customers/{customerId}
HTTP Request
GET /orders/customers/1?page=0&size=10 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1693
{
"totalElements" : 1,
"totalPages" : 1,
"size" : 1,
"content" : [ {
"customer" : {
"id" : 1,
"name" : "길길",
"phoneNumber" : "010-1234-5678"
},
"address" : {
"id" : 1,
"address" : "공릉",
"name" : "길길",
"zipcode" : "12345",
"addressDetail" : "아파트",
"phoneNumber" : "010-1234-5678",
"isDefaultAddress" : "Y",
"addressName" : "집",
"createdAt" : "2024-08-08T11:05:32.8975586"
},
"orderCode" : "123456",
"orderId" : 1,
"accountId" : null,
"type" : "ONETIME",
"status" : "APPROVED",
"deliveryStatus" : "IN_PROGRESS",
"perPrice" : 20000,
"totalPrice" : 100000,
"deliveryStartDate" : "2024-08-08",
"nextDeliveryDate" : "2024-08-09",
"deliveryEndDate" : "2024-08-15",
"totalDeliveryCount" : 5,
"remainingDeliveryCount" : 2,
"orderedProductList" : [ {
"productId" : 1,
"productName" : "Product A",
"count" : 2,
"discountRate" : 10,
"price" : 50000,
"productImageList" : null
} ],
"orderCreatedAt" : "2024-08-08T11:05:32.8975586",
"selectedDayList" : [ "MON", "WED" ],
"selectedWeekOption" : 1,
"selectedMonthOption" : 1,
"couponEventId" : null,
"couponName" : null,
"couponDiscountRate" : null,
"paymentCount" : null,
"nextPaymentDate" : null,
"thisMonthDeliveryCount" : null
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : "INSTANCE",
"first" : true,
"last" : true,
"numberOfElements" : 1,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
주문 목록 |
|
|
주문 ID |
|
|
고객 ID |
|
|
고객 이름 |
|
|
고객 전화번호 |
|
|
주소 ID |
|
|
주소 |
|
|
수령인 이름 |
|
|
계정 ID |
|
|
결제 횟수 |
|
|
다음 결제일 |
|
|
이번 달 배송 횟수 |
|
|
우편번호 |
|
|
상세주소 |
|
|
전화번호 |
|
|
기본 주소 여부 |
|
|
주소 별칭 |
|
|
주소 생성일 |
|
|
주문 코드 |
|
|
주문 유형 |
|
|
주문 상태 |
|
|
배송 상태 |
|
|
1회 배송 가격 |
|
|
총 가격 |
|
|
배송 시작일 |
|
|
다음 배송일 |
|
|
배송 종료일 |
|
|
총 배송 횟수 |
|
|
남은 배송 횟수 |
|
|
주문된 상품 목록 |
|
|
주문된 상품 ID |
|
|
주문된 상품 이름 |
|
|
주문된 상품 수량 |
|
|
할인율 |
|
|
주문된 상품 가격 |
|
|
상품 이미지 목록 |
|
|
주문 생성일 |
|
|
선택된 요일 목록 |
|
|
선택된 주 옵션 |
|
|
선택된 월 옵션 |
|
|
쿠폰이벤트 ID |
|
|
쿠폰 이름 |
|
|
쿠폰 할인율 |
|
|
페이지 정보 |
|
|
총 주문 수 |
|
|
총 페이지 수 |
|
|
마지막 페이지 여부 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬이 비어 있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
현재 페이지의 주문 수 |
|
|
첫 페이지 여부 |
|
|
주문 목록이 비어있는지 여부 |
회사의 주문 목록 조회
/orders/company/{companyId}
HTTP Request
GET /orders/company/1?page=0&size=10 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1693
{
"totalElements" : 1,
"totalPages" : 1,
"size" : 1,
"content" : [ {
"customer" : {
"id" : 1,
"name" : "길길",
"phoneNumber" : "010-1234-5678"
},
"address" : {
"id" : 1,
"address" : "공릉",
"name" : "길길",
"zipcode" : "12345",
"addressDetail" : "아파트",
"phoneNumber" : "010-1234-5678",
"isDefaultAddress" : "Y",
"addressName" : "집",
"createdAt" : "2024-08-08T11:05:32.8285585"
},
"orderCode" : "123456",
"orderId" : 1,
"accountId" : null,
"type" : "ONETIME",
"status" : "APPROVED",
"deliveryStatus" : "IN_PROGRESS",
"perPrice" : 10000,
"totalPrice" : 100000,
"deliveryStartDate" : "2024-08-08",
"nextDeliveryDate" : "2024-08-09",
"deliveryEndDate" : "2024-08-15",
"totalDeliveryCount" : 5,
"remainingDeliveryCount" : 2,
"orderedProductList" : [ {
"productId" : 1,
"productName" : "Product A",
"count" : 2,
"discountRate" : 10,
"price" : 50000,
"productImageList" : null
} ],
"orderCreatedAt" : "2024-08-08T11:05:32.8285585",
"selectedDayList" : [ "MON", "WED" ],
"selectedWeekOption" : 1,
"selectedMonthOption" : 1,
"couponEventId" : null,
"couponName" : null,
"couponDiscountRate" : null,
"paymentCount" : null,
"nextPaymentDate" : null,
"thisMonthDeliveryCount" : null
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : "INSTANCE",
"first" : true,
"last" : true,
"numberOfElements" : 1,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
주문 목록 |
|
|
주문 ID |
|
|
고객 정보 |
|
|
고객 ID |
|
|
계정 ID |
|
|
결제 횟수 |
|
|
다음 결제일 |
|
|
이번 달 배송 횟수 |
|
|
고객 이름 |
|
|
고객 전화번호 |
|
|
주소 정보 |
|
|
주소 ID |
|
|
주소 |
|
|
수령인 이름 |
|
|
우편번호 |
|
|
상세 주소 |
|
|
전화번호 |
|
|
기본 주소 여부 |
|
|
주소 별칭 |
|
|
주소 생성일 |
|
|
주문 코드 |
|
|
주문 유형 |
|
|
주문 상태 |
|
|
배송 상태 |
|
|
1회 배송 가격 |
|
|
총 가격 |
|
|
배송 시작일 |
|
|
다음 배송일 |
|
|
배송 종료일 |
|
|
총 배송 횟수 |
|
|
남은 배송 횟수 |
|
|
주문된 상품 목록 |
|
|
상품 ID |
|
|
상품 이름 |
|
|
상품 수량 |
|
|
상품 가격 |
|
|
할인율 |
|
|
상품 이미지 목록 |
|
|
주문 생성일 |
|
|
선택된 요일 목록 |
|
|
선택된 주 옵션 |
|
|
선택된 월 옵션 |
|
|
쿠폰이벤트 ID |
|
|
쿠폰 이름 |
|
|
쿠폰 할인율 |
|
|
페이지 정보 |
|
|
총 주문 수 |
|
|
총 페이지 수 |
|
|
마지막 페이지 여부 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어 있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
현재 페이지의 주문 수 |
|
|
첫 페이지 여부 |
|
|
주문 목록이 비어있는지 여부 |
주문 생성
/orders/customers/{customerId}
HTTP Request
POST /orders/customers/1 HTTP/1.1
Content-Type: application/json
Content-Length: 390
Host: localhost:8080
{
"companyId" : 1,
"addressId" : 1,
"accountId" : 1,
"eventId" : 1,
"monthOptionValue" : null,
"weekOptionValue" : null,
"orderType" : "ONETIME",
"totalDeliveryCount" : null,
"deliveryStartDate" : "2024-08-11",
"orderedProducts" : [ {
"productId" : 1,
"count" : 2,
"discountRate" : 10,
"price" : 1000
} ],
"dayValueTypeList" : null
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 39
success, 생성된 주문 아이디 : 1
주문 취소
/orders/{orderId}/cancel
HTTP Request
POST /orders/1/cancel HTTP/1.1
Content-Type: application/json
Content-Length: 44
Host: localhost:8080
{
"customerId" : 1,
"accountId" : 1
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
주문 수동 승인
/orders/{orderId}/approve
HTTP Request
POST /orders/1/approve HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
주문 자동 승인 토글
/orders/auto-approve-toggle/company/{companyId}
HTTP Request
POST /orders/auto-approve-toggle/company/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
주문 상세 조회
/orders/{orderId}
HTTP Request
GET /orders/1 HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1313
{
"customer" : {
"id" : 1,
"name" : "Test Customer",
"phoneNumber" : "010-1234-5678"
},
"address" : {
"id" : 1,
"address" : "Test Address",
"name" : "Test Name",
"zipcode" : "12345",
"addressDetail" : "Test Detail",
"phoneNumber" : "010-1234-5678",
"isDefaultAddress" : "Y",
"addressName" : "Home",
"createdAt" : "2024-08-08T11:05:32.9605602"
},
"orderCode" : "123456",
"orderId" : 1,
"accountId" : null,
"type" : "ONETIME",
"status" : "APPROVED",
"deliveryStatus" : "IN_PROGRESS",
"perPrice" : 20000,
"totalPrice" : 100000,
"deliveryStartDate" : "2024-08-08",
"nextDeliveryDate" : "2024-08-09",
"deliveryEndDate" : "2024-08-15",
"totalDeliveryCount" : 1,
"remainingDeliveryCount" : 1,
"orderedProductList" : [ {
"productId" : 1,
"productName" : "Test Product",
"count" : 2,
"discountRate" : 10,
"price" : 50000,
"productImageList" : null
} ],
"orderCreatedAt" : "2024-08-08T11:05:32.9605602",
"selectedDayList" : null,
"selectedWeekOption" : null,
"selectedMonthOption" : null,
"couponEventId" : null,
"couponName" : null,
"couponDiscountRate" : null,
"paymentCount" : null,
"nextPaymentDate" : null,
"thisMonthDeliveryCount" : null
}
정기주문(월 단위) 가격 관련 정보 조회
/orders/month/calculate-price
HTTP Request
POST /orders/month/calculate-price HTTP/1.1
Content-Type: application/json
Content-Length: 158
Host: localhost:8080
{
"selectedDays" : [ "MON", "WED", "FRI" ],
"weekOptionValue" : 2,
"monthOptionValue" : null,
"perPrice" : 10000,
"startDate" : "2024-08-08"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 196
{
"thisMonthDeliveryCount" : 8,
"thisMonthPrice" : 80000,
"totalDeliveryCount" : 24,
"totalPrice" : 240000,
"deliveryNextDate" : "2024-08-09",
"deliveryEndDate" : "2024-10-08"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
이번 달 배송 횟수 |
|
|
이번 달 가격 |
|
|
총 배송 횟수 |
|
|
총 가격 |
|
|
다음 배송일 |
|
|
배송 종료일 |
정기주문(횟수 단위) 가격 관련 정보 조회
/orders/count/info
HTTP Request
POST /orders/count/info HTTP/1.1
Content-Type: application/json
Content-Length: 151
Host: localhost:8080
{
"selectedDays" : [ "TUE", "THU" ],
"weekOptionValue" : 1,
"monthOptionValue" : null,
"perPrice" : 15000,
"startDate" : "2024-08-08"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 196
{
"thisMonthDeliveryCount" : 6,
"thisMonthPrice" : 90000,
"totalDeliveryCount" : 18,
"totalPrice" : 270000,
"deliveryNextDate" : "2024-08-10",
"deliveryEndDate" : "2024-11-08"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
이번 달 배송 횟수 |
|
|
이번 달 가격 |
|
|
총 배송 횟수 |
|
|
총 가격 |
|
|
다음 배송일 |
|
|
배송 종료일 |
주문한 상품들 재고 체크
/orders/{orderId}/enough-stock
HTTP Request
POST /orders/count/info HTTP/1.1
Content-Type: application/json
Content-Length: 151
Host: localhost:8080
{
"selectedDays" : [ "TUE", "THU" ],
"weekOptionValue" : 1,
"monthOptionValue" : null,
"perPrice" : 15000,
"startDate" : "2024-08-08"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 196
{
"thisMonthDeliveryCount" : 6,
"thisMonthPrice" : 90000,
"totalDeliveryCount" : 18,
"totalPrice" : 270000,
"deliveryNextDate" : "2024-08-10",
"deliveryEndDate" : "2024-11-08"
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
이번 달 배송 횟수 |
|
|
이번 달 가격 |
|
|
총 배송 횟수 |
|
|
총 가격 |
|
|
다음 배송일 |
|
|
배송 종료일 |
승인되지않은 주문 수 조회
/orders/company/{companyId}/unapproved-count
HTTP Request
GET /orders/company/1/unapproved-count HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1
5
Payment(결제내역) [길재현]
해당 회사 결제내역 조회
/payment-histories/company/{companyId}
HTTP Request
GET /payment-histories/company/1?page=0&size=10&orderCode=ORDER123&userName=John&startDate=2023-01-01&endDate=2023-12-31&status=COMPLETE HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 585
{
"totalElements" : 1,
"totalPages" : 1,
"size" : 1,
"content" : [ {
"paymentHistoryId" : 1,
"customerId" : 100,
"orderCode" : "ORDER123",
"userName" : "John Doe",
"price" : 10000,
"remainingPayCount" : 3,
"totalCountForPayment" : 5,
"paymentDate" : "2024-08-08T11:05:34.0055762",
"status" : "COMPLETE"
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : "INSTANCE",
"first" : true,
"last" : true,
"numberOfElements" : 1,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
결제 내역 목록 |
|
|
결제 내역 ID |
|
|
고객 ID |
|
|
주문 코드 |
|
|
사용자 이름 |
|
|
결제 금액 |
|
|
남은 결제 횟수 |
|
|
총 결제해야 하는 횟수 |
|
|
결제 일시 |
|
|
결제 상태 |
|
|
페이지 정보 |
|
|
총 결제 내역 수 |
|
|
총 페이지 수 |
|
|
마지막 페이지 여부 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어 있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
현재 페이지의 결제 내역 수 |
|
|
첫 페이지 여부 |
|
|
결제 내역이 비어있는지 여부 |
해당 주문 결제내역 조회
/payment-histories/orders/{orderId}
HTTP Request
GET /payment-histories/orders/1?page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 730
{
"totalElements" : 1,
"totalPages" : 1,
"size" : 1,
"content" : [ {
"paymentHistoryId" : 1,
"price" : 10000,
"remainingPayCount" : 3,
"totalCountForPayment" : 5,
"paymentDate" : "2024-08-08T11:05:34.0415751",
"status" : "COMPLETE",
"accountNumber" : "1234-5678-9012-3456",
"orderType" : "ONETIME",
"thisSubMonthStartDate" : "2024-08-08",
"thisSubMonthEndDate" : "2024-09-08",
"deliveryPerPrice" : 2000,
"thisMonthDeliveryCount" : 4
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : "INSTANCE",
"first" : true,
"last" : true,
"numberOfElements" : 1,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
결제 내역 상세 목록 |
|
|
결제 내역 ID |
|
|
결제 금액 |
|
|
남은 결제 횟수 |
|
|
총 결제해야 하는 횟수 |
|
|
결제 일시 |
|
|
결제 상태 |
|
|
계좌 번호 |
|
|
주문 타입 |
|
|
이번 구독 월 시작일 |
|
|
이번 구독 월 종료일 |
|
|
배송당 가격 |
|
|
이번 달 배송 횟수 |
|
|
페이지 정보 |
|
|
총 결제 내역 상세 수 |
|
|
총 페이지 수 |
|
|
마지막 페이지 여부 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어 있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
현재 페이지의 결제 내역 상세 수 |
|
|
첫 페이지 여부 |
|
|
결제 내역 상세가 비어있는지 여부 |
Product(상품) [이재아]
상품 목록 조회
/products
HTTP Request
GET /products?companyId=1&page=0&size=10&deliveryType=%EC%A0%84%EC%B2%B4&isDiscount=%EC%A0%84%EC%B2%B4&categoryName=%EC%A0%84%EC%B2%B4&isVisible=%EC%A0%84%EC%B2%B4&productName= HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 843
{
"totalElements" : 1,
"totalPages" : 1,
"size" : 10,
"content" : [ {
"productId" : 1,
"code" : 1,
"thumbnailImage" : "thumbnail.jpg",
"name" : "Product Name",
"categoryName" : null,
"isVisible" : null,
"cost" : 0,
"stock" : 0,
"deliveryType" : null,
"previousMonthSales" : 0,
"isDiscount" : null,
"discountRate" : 0,
"discountedPrice" : 0
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"offset" : 0,
"unpaged" : false,
"paged" : true
},
"first" : true,
"last" : true,
"numberOfElements" : 1,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
상품 목록 |
|
|
상품 ID |
|
|
상품 코드 |
|
|
상품 이름 |
|
|
썸네일 이미지 |
|
|
카테고리 이름 |
|
|
노출 여부 |
|
|
가격 |
|
|
재고 |
|
|
배송 타입 |
|
|
이전 달 판매량 |
|
|
할인 여부 |
|
|
할인율 |
|
|
할인된 가격 |
|
|
페이지 정보 |
|
|
정렬 정보 |
|
|
정렬 정보가 비어있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이지된 여부 |
|
|
페이지되지 않은 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
마지막 페이지 여부 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬 정보가 비어있는지 여부 |
|
|
정렬되었는지 여부 |
|
|
정렬되지 않았는지 여부 |
|
|
현재 페이지의 요소 수 |
|
|
첫 페이지 여부 |
|
|
결과가 비어있는지 여부 |
상품 상세 조회
/products/{productId}
HTTP Request
GET /products/1?companyId=1 HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 549
{
"productId" : 0,
"code" : 1,
"name" : "Product Name",
"categoryName" : "Category",
"productInformation" : "Product Information",
"detailImages" : [ "detail1.jpg", "detail2.jpg" ],
"cost" : 10000,
"isDiscount" : "N",
"discountStartDate" : null,
"discountEndDate" : null,
"discountRate" : 0,
"discountedPrice" : 10000,
"thumbnailImage" : "thumbnail.jpg",
"listImages" : [ "list1.jpg", "list2.jpg" ],
"isVisible" : "Y",
"deliveryType" : "SUBSCRIPTION",
"stock" : 100,
"previousMonthSales" : 10
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
상품 ID |
|
|
상품 코드 |
|
|
상품 이름 |
|
|
카테고리 이름 |
|
|
상품 정보 |
|
|
상세 이미지 |
|
|
가격 |
|
|
할인 여부 |
|
|
할인 시작일 |
|
|
할인 종료일 |
|
|
할인율 |
|
|
할인된 가격 |
|
|
썸네일 이미지 |
|
|
리스트 이미지 |
|
|
노출 여부 |
|
|
배송 타입 |
|
|
재고 |
|
|
이전 달 판매량 |
상품 생성
/products
HTTP Request
POST /products HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=product; filename=product.json
Content-Type: application/json
{"companyId":1,"name":"Product Name","categoryName":"Category","productInformation":"Product Information","detailImages":["detail1.jpg","detail2.jpg"],"cost":10000,"isDiscount":"N","discountStartDate":null,"discountEndDate":null,"discountRate":0,"thumbnailImage":"thumbnail.jpg","listImages":["list1.jpg","list2.jpg"],"deliveryType":"SUBSCRIPTION","stock":100,"isVisible":"Y"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=thumbnailImage; filename=thumbnail.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=listImages; filename=list1.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=listImages; filename=list2.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=detailImages; filename=detail1.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=detailImages; filename=detail2.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
상품 수정
/products/{productId}
HTTP Request
PUT /products/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=product
Content-Type: application/json
{"companyId":1,"name":"Product Name","categoryName":"Category","productInformation":"Product Information","detailImages":["detail1.jpg","detail2.jpg"],"cost":10000,"isDiscount":"N","discountStartDate":null,"discountEndDate":null,"discountRate":0,"thumbnailImage":"thumbnail.jpg","listImages":["list1.jpg","list2.jpg"],"deliveryType":"SUBSCRIPTION","stock":100,"isVisible":"Y"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=thumbnailImage; filename=thumbnail.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=listImages; filename=list1.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=listImages; filename=list2.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=detailImages; filename=detail1.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=detailImages; filename=detail2.jpg
Content-Type: image/jpeg
image content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
상품 삭제
/products/{productId}
HTTP Request
DELETE /products/1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=jJr8sdZg0nsa2JKt6EYU7lFItJskmk8nqGilq1TlNCRfoN7I6qrFgeJTsUI34aGb22sg2WQumfkXqCoKkQ6SnDHSBUdrluj_
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Product (상품) - 회원화면 [ 김현주 ]
사업체별 상품 목록 조회
/products/company/{companyId}
HTTP Request
GET /products/company/1?deliveryType=ONETIME&page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1065
{
"totalElements" : 2,
"totalPages" : 1,
"size" : 10,
"content" : [ {
"productId" : 1,
"name" : "product1",
"categoryName" : "category1",
"deliveryType" : "ONETIME",
"cost" : 1000,
"isDiscount" : "N",
"discountRate" : 0,
"discountedPrice" : 1000,
"thumbnailImage" : "thumbnail1",
"stock" : 100
}, {
"productId" : 2,
"name" : "product2",
"categoryName" : "category2",
"deliveryType" : "ONETIME",
"cost" : 2000,
"isDiscount" : "Y",
"discountRate" : 10,
"discountedPrice" : 1800,
"thumbnailImage" : "thumbnail2",
"stock" : 200
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"offset" : 0,
"unpaged" : false,
"paged" : true
},
"first" : true,
"last" : true,
"numberOfElements" : 2,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
상품 ID |
|
|
상품 이름 |
|
|
카테고리 이름 |
|
|
배송 타입 |
|
|
가격 |
|
|
할인 여부 |
|
|
할인율 |
|
|
할인된 가격 |
|
|
썸네일 이미지 URL |
|
|
재고 |
사업체별 상품 목록 조회 (카테고리 필터링)
/products/company/{companyId}?categoryId={categoryId}
HTTP Request
GET /products/company/1?deliveryType=ONETIME&categoryId=2&page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1065
{
"totalElements" : 2,
"totalPages" : 1,
"size" : 10,
"content" : [ {
"productId" : 1,
"name" : "product1",
"categoryName" : "category1",
"deliveryType" : "ONETIME",
"cost" : 1000,
"isDiscount" : "N",
"discountRate" : 0,
"discountedPrice" : 1000,
"thumbnailImage" : "thumbnail1",
"stock" : 100
}, {
"productId" : 2,
"name" : "product2",
"categoryName" : "category2",
"deliveryType" : "ONETIME",
"cost" : 2000,
"isDiscount" : "Y",
"discountRate" : 10,
"discountedPrice" : 1800,
"thumbnailImage" : "thumbnail2",
"stock" : 200
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"offset" : 0,
"unpaged" : false,
"paged" : true
},
"first" : true,
"last" : true,
"numberOfElements" : 2,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
상품 ID |
|
|
상품 이름 |
|
|
카테고리 이름 |
|
|
배송 타입 |
|
|
가격 |
|
|
할인 여부 |
|
|
할인율 |
|
|
할인된 가격 |
|
|
썸네일 이미지 URL |
|
|
재고 |
ContractCompany(계약 회사) [김준석]
계약 사업체 등록
/contract-company/register
계약 사업체를 등록한다.
HTTP Request
POST /contract-company/register?_csrf=WBsaRZN8jpw5vCyDGHMjirFQwEdAFQmdXLhTGYPwy-BLAY3faCopd_JNuf0U2Bm0fF4X6IFp7X90LW2wa4s2IeXJ8tl9YLi5 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 174
Host: localhost:8080
{
"contractCompanyName" : "Test Company",
"businessRegistrationNumber" : "123-45-67890",
"contractAuthId" : "testauth",
"contractAuthPassword" : "Password123!"
}
HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 16
{
"id" : 1
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
계약 사업체 이름 |
|
|
사업자 등록 번호 |
|
|
계약 인증 ID |
|
|
계약 인증 비밀번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
생성된 계약 사업체 ID |
계약 사업체 인증
/contract-company/authenticate
계약 사업체를 인증한다.
HTTP Request
POST /contract-company/authenticate?_csrf=JGnFePl11PCIGqN7FDS2x0xXrYYJ-0BM9oiYZ6XWJoQMTLfUQlCmHs9M5sSlKJRJJBmCoX40gL45zHZhx7ygVsflFuZqf9Xg HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 81
Host: localhost:8080
{
"contractAuthId" : "testauth",
"contractAuthPassword" : "Password123!"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 116
{
"companyId" : 1,
"contractCompanyName" : "Test Company",
"businessRegistrationNumber" : "123-45-67890"
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
계약 인증 ID |
|
|
계약 인증 비밀번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
계약 사업체 이름 |
|
|
사업자 등록 번호 |
Client(고객) [김준석]
고객 회원가입
POST /clients/signup
고객 회원가입을 수행합니다.
HTTP Request
POST /clients/signup?_csrf=cRJnofBtKl7qdEteKi0QTQTGyVjZ595MK7jSQ0d2fwbh-9d1QidTkcBZGWzHEXhsGAAkdD305GC91OthE962cCRDSDbQzO4W HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 166
Host: localhost:8080
{
"companyId" : 1,
"username" : "testuser",
"password" : "Password123!",
"name" : "Test User",
"phoneNumber" : "01012345678",
"permissions" : [ ]
}
HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 16
{
"id" : 1
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
사용자명 |
|
|
비밀번호 |
|
|
이름 |
|
|
전화번호 |
|
|
권한 목록 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
생성된 고객 ID |
고객 아이디 중복 확인
POST /clients/duplicate-check-id
고객 아이디의 중복 여부를 확인합니다.
HTTP Request
POST /clients/duplicate-check-id?_csrf=aOKMv7nqIk_Sgkq06HAkxwKG1_J4VkyndWW3dXoV_Od7JagmWtPoj4jZG37_u3KM210QozW--pBNYSiKRwCGQU53ztBJFZFD HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 31
Host: localhost:8080
{
"username" : "testuser"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 26
{
"available" : true
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
확인할 사용자명 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
사용 가능 여부 |
회원가입 SMS 인증번호 전송
POST /clients/signup/verify-code/send
회원가입을 위한 SMS 인증번호를 전송합니다.
HTTP Request
POST /clients/signup/verify-code/send?_csrf=792wm1oXpRE-7tUKqUSP9jn9s5v1wP0jcIXFvEeeXE4enbc41uuG-WJ2kicT2ew5zGm7wA2bnvmWpcwORrykiCamaC8ur4Re HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 57
Host: localhost:8080
{
"companyId" : 1,
"phoneNumber" : "01012345678"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
전화번호 |
회원가입 SMS 인증번호 확인
POST /clients/signup/verify-code
회원가입을 위해 전송된 SMS 인증번호를 확인합니다.
HTTP Request
POST /clients/signup/verify-code?_csrf=gfepUsWcYP2alAkZ4U54ozm4btexRnP3nXL1UoVV_H2iLacr5MDIM6CsUc23pWov12NMxguKQ7bXckTaqUSWarFizBjAHp5N HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 110
Host: localhost:8080
{
"companyId" : 1,
"name" : "Test User",
"phoneNumber" : "01012345678",
"authNumber" : "123456"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
이름 |
|
|
전화번호 |
|
|
인증번호 |
현재 고객 정보 조회
GET /clients/me
현재 로그인한 고객의 정보를 조회합니다.
HTTP Request
GET /clients/me?_csrf=kR5HY72ac74q6uHBULa1csrYYOl_C8OTkEOPVX8uxn5ssSiCqSxwUYWjEokHi9GgZpuBQ6zuTYsbM6C-pHO5YR0c8kdahE7k HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 193
{
"data" : {
"id" : 1,
"companyId" : 1,
"name" : "Test User",
"userRole" : "ROLE_CLIENT",
"contractCompanyName" : "Test Company",
"isAutoApproved" : "Y"
}
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
고객 ID |
|
|
회사 ID |
|
|
이름 |
|
|
사용자 역할 |
|
|
계약 회사명 |
|
|
자동 승인 여부 |
고객 아이디 찾기
POST /clients/find-id
고객의 아이디를 찾습니다.
HTTP Request
POST /clients/find-id?_csrf=vDi_CA7AKGY3jxHku0fOZczatKlb2EFvpxsdZK1q1qTHgPvn31yNbT70TVMavSeCimr6Ufnimchsu3BClit_U51c5JWksJmE HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 90
Host: localhost:8080
{
"name" : "Test User",
"phoneNumber" : "01012345678",
"authNumber" : "123456"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 31
{
"username" : "testuser"
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
이름 |
|
|
전화번호 |
|
|
인증번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
찾은 사용자명 |
고객 아이디 찾기 SMS 인증번호 요청
POST /clients/find-id/send
고객 아이디 찾기를 위한 SMS 인증번호를 요청합니다.
HTTP Request
POST /clients/find-id/send?_csrf=bAkk3FJ0wtrGgWYZ-TAATuVncuEwfv7lMVvyilFouHI8Omh0Dm8QuWUXp-zruQcomx00eoBSX4AAR8zIVGiRvWVbjkYNCgpG HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 62
Host: localhost:8080
{
"name" : "Test User",
"phoneNumber" : "01012345678"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 77
{
"success" : "인증 번호가 성공적으로 발송되었습니다."
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
이름 |
|
|
전화번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
성공 메시지 |
고객 비밀번호 찾기
POST /clients/find-password
고객의 비밀번호를 찾습니다.
HTTP Request
POST /clients/find-password?_csrf=ECbYjsAFY-Ys0BhuAdbbEN1P07jVHfDaRM_5SYegnW8wIcdfJ0S9t6U9VIQB5yhaZPvvJ-4s_oHkLJT3dPbNKreRpA5WGfQ5 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 118
Host: localhost:8080
{
"username" : "testuser",
"name" : "Test User",
"phoneNumber" : "01012345678",
"authNumber" : "123456"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 30
{
"token" : "resetToken"
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
사용자명 |
|
|
이름 |
|
|
전화번호 |
|
|
인증번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
비밀번호 재설정 토큰 |
고객 비밀번호 찾기 SMS 인증번호 요청
POST /clients/find-password/send
고객 비밀번호 찾기를 위한 SMS 인증번호를 요청합니다.
HTTP Request
POST /clients/find-password/send?_csrf=wb7zfxl7wppJaAVQchZN3vtDYLc17z-GtUN8BPJfPfUX23SC992RR3sdp6xkXzQzFDt5vMkiTY9TjF6rg3cZMJc5DZFy6kW7 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 90
Host: localhost:8080
{
"username" : "testuser",
"name" : "Test User",
"phoneNumber" : "01012345678"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 77
{
"success" : "인증 번호가 성공적으로 발송되었습니다."
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
사용자명 |
|
|
이름 |
|
|
전화번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
성공 메시지 |
고객 비밀번호 변경
POST /clients/change-password
고객의 비밀번호를 변경합니다.
HTTP Request
POST /clients/change-password?_csrf=ZNG1q8BhAOJmVgfn00vb-QKpwm61fPw9dmb7aw2vUxmrmOxdV7DUk_lUMdBLbjLS5GbvzWee71aBSsQQQ1LJWDvOYyqa_tll HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 68
Host: localhost:8080
{
"token" : "resetToken",
"newPassword" : "NewPassword123!"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 76
{
"success" : "비밀번호가 성공적으로 변경되었습니다."
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
비밀번호 재설정 토큰 |
|
|
새 비밀번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
성공 메시지 |
Customer(회원) [김준석]
회원 회원가입
POST /api/customers/signup 회원 회원가입을 수행합니다.
HTTP Request
POST /api/customers/signup?_csrf=e2QaGjWCjAInri1Jt7XilJj-35_u1HuZBuzWZTTRTvgcH4K0SgF_flSz6DMKmkgq0ZjWramb8qbc4x20Ytm1AwDjfMAufLrX HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 142
Host: localhost:8080
{
"companyId" : 1,
"username" : "testuser",
"password" : "password123!",
"name" : "Test User",
"phoneNumber" : "01012345678"
}
HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 16
{
"id" : 1
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
사용자명 |
|
|
비밀번호 |
|
|
이름 |
|
|
전화번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
생성된 회원 ID |
회원 아이디 중복 확인
POST /api/customers/duplicate-check-id 회원 아이디의 중복 여부를 확인합니다.
HTTP Request
POST /api/customers/duplicate-check-id?_csrf=-3_N80U6dtlgDmAZze1jKpabrZ7WvxmJYcQxT3tchmUqPTRPnxv-xH1YFe1NaFV69cBXEqf6gP_h2SikWPUDKUJpsVZMCwV9 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 51
Host: localhost:8080
{
"username" : "testuser",
"companyId" : 1
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 26
{
"available" : true
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
확인할 사용자명 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
사용 가능 여부 |
회원가입 SMS 인증번호 전송
POST /api/customers/signup/verify-code/send
회원가입을 위한 SMS 인증번호를 전송합니다.
HTTP Request
POST /api/customers/signup/verify-code/send?_csrf=hcwI3YTnXd-KJxHf-JqO6mH_PC4cutiCtyViWUqoeVOo9agz56gw5bLRO7ynHnK7nre6i1jKEUwrg-2v1RBTbiycTGKYxJpW HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 57
Host: localhost:8080
{
"companyId" : 1,
"phoneNumber" : "01012345678"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
전화번호 |
회원가입 SMS 인증번호 확인
POST /api/customers/signup/verify-code
회원가입을 위해 전송된 SMS 인증번호를 확인합니다.
HTTP Request
POST /api/customers/signup/verify-code?_csrf=qNJXb231YE6bD9coG3Br7EXvoo1TW2jPTFFH2yAFnjNH6IN_zLE1C1iRVH22PeMZLF1f3ifYj7VgOVrieTN160Rg_wZz2bdP HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 110
Host: localhost:8080
{
"companyId" : 1,
"name" : "Test User",
"phoneNumber" : "01012345678",
"authNumber" : "123456"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
이름 |
|
|
전화번호 |
|
|
인증번호 |
현재 회원 정보 조회
GET /api/customers/me 현재 로그인한 회원의 정보를 조회합니다.
HTTP Request
GET /api/customers/me?_csrf=5HAKF1DOurulDtB_ofEG_n9tWXkADGzmKDPOa4Kr0uh1mnyE1kg4dWCo29iIOOdKldwyyxkJdBhhPFrLH1CtWLPI5dsR-US9 HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 118
{
"data" : {
"id" : 1,
"companyId" : 1,
"name" : "Test User",
"customerType" : "NORMAL"
}
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
회원 ID |
|
|
회사 ID |
|
|
이름 |
|
|
회원 유형 |
회원 아이디 찾기
POST /api/customers/find-id
회원의 아이디를 찾습니다.
HTTP Request
POST /api/customers/find-id?_csrf=rilroHw4d69XKpuwnAOoQHT_zI7yD4FWGcEdiddUR7AGko3RyEpSw0wJT8l6HqLVqy6ccBKd4eyUP7Z7LPIqvLE1cocyor20 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 110
Host: localhost:8080
{
"name" : "Test User",
"phoneNumber" : "01012345678",
"authNumber" : "123456",
"companyId" : 1
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 31
{
"username" : "testuser"
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
이름 |
|
|
전화번호 |
|
|
인증번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
찾은 사용자명 |
회원 아이디 찾기 SMS 인증번호 요청
POST /api/customers/find-id/send
회원 아이디 찾기를 위한 SMS 인증번호를 요청합니다.
HTTP Request
POST /api/customers/find-id/send?_csrf=gpkHNUXNUlXhuHjqp-VOcVbWhaO2aezk5EcRaDJ-n8t2zM8es6piUXz0Y2XMih3SlMh6QzDmqMGEDNTJhiN1WABM-vhA9Pws HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 82
Host: localhost:8080
{
"name" : "Test User",
"phoneNumber" : "01012345678",
"companyId" : 1
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 77
{
"success" : "인증 번호가 성공적으로 발송되었습니다."
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
이름 |
|
|
전화번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
성공 메시지 |
회원 비밀번호 찾기
POST /api/customers/find-password
회원의 비밀번호를 찾습니다.
HTTP Request
POST /api/customers/find-password?_csrf=32p2ypMI7Xqvz5NnbNnL9-YWqQ8UJP_K4mCGpepXMY1xFiTe6lNF-vdt3kiC-aRUCvT_kYMihDcjEsvnh1aznd9nBe5GIRy4 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 138
Host: localhost:8080
{
"username" : "testuser",
"name" : "Test User",
"phoneNumber" : "01012345678",
"authNumber" : "123456",
"companyId" : 1
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 28
{
"token" : "token123"
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
사용자명 |
|
|
이름 |
|
|
전화번호 |
|
|
인증번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
비밀번호 재설정 토큰 |
회원 비밀번호 찾기 SMS 인증번호 요청
POST /api/customers/find-password/send
회원 비밀번호 찾기를 위한 SMS 인증번호를 요청합니다.
HTTP Request
POST /api/customers/find-password/send?_csrf=D3rvhbQw8iM2pNr4tJLzOJjzO3h1cwnaO6X_GG_NwnZdblpjPE7Xt4VTkBAbnO-eh7_HXKzDFhpBFWz3DJOdew70o0VlXT8F HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 110
Host: localhost:8080
{
"username" : "testuser",
"name" : "Test User",
"phoneNumber" : "01012345678",
"companyId" : 1
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 77
{
"success" : "인증 번호가 성공적으로 발송되었습니다."
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회사 ID |
|
|
사용자명 |
|
|
이름 |
|
|
전화번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
성공 메시지 |
회원 비밀번호 변경
POST /api/customers/change-password
회원의 비밀번호를 변경합니다.
HTTP Request
POST /api/customers/change-password?_csrf=RQR2ksIn0PV0lJg_qxqYP55b9qFS0vco24pEjGJohcwHYEJ9fTBOovEUsZZZ9v1dyTesCa8625g35cMF4r4m6VtZsq03WSAc HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 66
Host: localhost:8080
{
"token" : "token123",
"newPassword" : "newPassword123!"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 76
{
"success" : "비밀번호가 성공적으로 변경되었습니다."
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
비밀번호 재설정 토큰 |
|
|
새 비밀번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
성공 메시지 |
회원 등록
POST /api/customers/self
회원을 등록합니다.
HTTP Request
POST /api/customers/self?_csrf=4oUjMaE2CqRcMg2wOIs0W_9RvmzjiHjgylxVqXGxZIWP2vIzg-MQAcNVP5RxVjvUXaYAa5plk1WFu0nNrDhkkBOBVua76cQB HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 70
Host: localhost:8080
{
"customerName" : "Test User",
"phoneNumber" : "01012345678"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 233
{
"customerId" : 1,
"customerUsername" : "testuser",
"customerName" : "Test User",
"customerPhoneNumber" : "01012345678",
"customerCreatedAt" : "2023-06-01",
"customerType" : "NEW",
"latestDeliveryDate" : null
}
Request Fields
Path | Type | Description |
---|---|---|
|
|
회원 이름 |
|
|
전화번호 |
Response Fields
Path | Type | Description |
---|---|---|
|
|
회원 ID |
|
|
사용자명 |
|
|
회원 이름 |
|
|
전화번호 |
|
|
생성일 |
|
|
회원 유형 |
|
|
최근 배송일 |
회원 정보 조회
GET /api/customers/{id}
특정 회원의 정보를 조회합니다.
HTTP Request
GET /api/customers/1?_csrf=-8r92wCEuZTFUp-i69beiIxtUhRtreywRu_LfHKDFADn1NPazfKf42GwjfDoYKaUivvq6e1Ufy1cn4idctr-GEOzJTLe5ePi HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 236
{
"customerId" : 1,
"customerUsername" : "testuser",
"customerName" : "Test User",
"customerPhoneNumber" : "01012345678",
"customerCreatedAt" : "2023-06-01",
"customerType" : "NORMAL",
"latestDeliveryDate" : null
}
Path Parameters
Parameter | Description |
---|---|
|
회원 ID |
Response Fields
Path | Type | Description |
---|---|---|
|
|
회원 ID |
|
|
사용자명 |
|
|
회원 이름 |
|
|
전화번호 |
|
|
생성일 |
|
|
회원 유형 |
|
|
최근 배송일 |
회원 정보 수정
PUT /api/customers/{id}
특정 회원의 정보를 수정합니다. === HTTP Request
PUT /api/customers/1?_csrf=dHYIpAXTR5ZdzRdScleISQ22A4OdxyfUYq5PlOQsYgHtJnrGEUU9xWTlc6Fw_HRmQ3q8eTWALruppRf5Vpd39odJBDHcHk-i HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 73
Host: localhost:8080
{
"customerName" : "Updated User",
"phoneNumber" : "01087654321"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
success
Path Parameters
Parameter | Description |
---|---|
|
회원 ID |
Request Fields
Path | Type | Description |
---|---|---|
|
|
수정할 회원 이름 |
|
|
수정할 전화번호 |
Customer(회원) - 회원화면 [이재아]
마이페이지 회원 정보 조회
GET /api/customers/mypage/{id}
마이페이지에서 회원의 정보를 조회합니다.
HTTP Request
GET /api/customers/mypage/1?_csrf=GJTYQEx2L8shLLkXx5yjMYf9btiPAI-W13sidwp3qmJ6aSgcfaXpdygUGq4MT44hobGXBb-fQ7q-Nrq7sUwVEjhEz1tOXRsr HTTP/1.1
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;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 58
{
"name" : "Test User",
"customerType" : "NORMAL"
}
Path Parameters
Parameter | Description |
---|---|
|
회원 ID |
Response Fields
Path | Type | Description |
---|---|---|
|
|
회원 이름 |
|
|
회원 유형 |
인증 코드 전송
POST /api/customers/{id}/send-auth-code
특정 회원에게 인증 코드를 전송합니다.
HTTP Request
POST /api/customers/1/send-auth-code?_csrf=i2zMe9_2X8oDaNu8SV8vYwRt2LgIHjtsqVhXHGMeyywc6D-W6V_6GL3Hav4uCuKNKnIbUWdZ9YEwJwtByGllLlAp_B9-iVqm HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 83
Host: localhost:8080
{
"customerId" : 1,
"name" : "Test User",
"phoneNumber" : "01012345678"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Path Parameters
Parameter | Description |
---|---|
|
회원 ID |
Request Fields
Path | Type | Description |
---|---|---|
|
|
회원 ID |
|
|
회원 이름 |
|
|
전화번호 |
인증 코드 확인
POST /api/customers/{id}/verify-auth-code
특정 회원의 인증 코드를 확인합니다.
HTTP Request
POST /api/customers/1/verify-auth-code?_csrf=nT2B9wknNVAY-iR0V27K0YodOzawq9TccMo5YWldAHvJ9viTqgvikjEUVjM1whcQYkP-5LMoFlSDm-XxQvIIUlg_ZBivxcz3 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 50
Host: localhost:8080
{
"customerId" : 1,
"authCode" : "123456"
}
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Path Parameters
Parameter | Description |
---|---|
|
회원 ID |
Request Fields
Path | Type | Description |
---|---|---|
|
|
회원 ID |
|
|
인증 코드 |
Cart(장바구니) [ 김현주 ]
장바구니 목록 조회
/api/cart/{cartType}
HTTP Request
GET /api/cart/ONETIME HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 611
[ {
"productId" : 1,
"name" : "Product 1",
"categoryName" : "Category 1",
"deliveryType" : "ONETIME",
"cost" : 1000,
"quantity" : 2,
"isDiscount" : "Y",
"discountRate" : 10,
"discountedPrice" : 900,
"thumbnailImage" : "image1.jpg",
"stock" : 50,
"isVisible" : "Y"
}, {
"productId" : 2,
"name" : "Product 2",
"categoryName" : "Category 2",
"deliveryType" : "SUBSCRIPTION",
"cost" : 2000,
"quantity" : 1,
"isDiscount" : "Y",
"discountRate" : 0,
"discountedPrice" : 2000,
"thumbnailImage" : "image2.jpg",
"stock" : 30,
"isVisible" : "Y"
} ]
Response Fields
Path | Type | Description |
---|---|---|
|
|
상품 ID |
|
|
상품 이름 |
|
|
카테고리 이름 |
|
|
배송 유형 |
|
|
상품 가격 |
|
|
상품 수량 |
|
|
할인 여부 |
|
|
할인율 |
|
|
할인된 가격 |
|
|
썸네일 이미지 |
|
|
재고 |
|
|
노출 여부 |
장바구니에 상품 추가
/api/cart/add/{cartType}
HTTP Request
POST /api/cart/add/ONETIME?productId=1&quantity=2 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
장바구니에서 상품 제거
/api/cart/remove/{cartType}/{productId}
HTTP Request
DELETE /api/cart/remove/ONETIME/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
장바구니 전체 삭제
/api/cart/clear/{cartType}
HTTP Request
POST /api/cart/clear/ONETIME HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
장바구니 상품 수량 증가
/api/cart/increase/{cartType}/{productId}
HTTP Request
POST /api/cart/increase/ONETIME/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
장바구니 상품 수량 감소
/api/cart/decrease/{cartType}/{productId}
HTTP Request
POST /api/cart/decrease/ONETIME/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
Event(이벤트) [ 김현주 ]
이벤트 목록 조회
/events
HTTP Request
GET /events?startDate=2024-07-22&endDate=2024-08-06&page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 994
{
"totalElements" : 2,
"totalPages" : 1,
"size" : 10,
"content" : [ {
"id" : 1,
"couponName" : "event1",
"couponDiscountRate" : 10,
"targetCustomerType" : "ALL",
"eventStartDate" : "2024-07-22",
"eventEndDate" : "2024-08-06",
"state" : "ONGOING",
"totalQuantity" : 100
}, {
"id" : 2,
"couponName" : "event2",
"couponDiscountRate" : 20,
"targetCustomerType" : "NEW",
"eventStartDate" : "2024-07-24",
"eventEndDate" : "2024-08-04",
"state" : "ONGOING",
"totalQuantity" : 200
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"offset" : 0,
"unpaged" : false,
"paged" : true
},
"first" : true,
"last" : true,
"numberOfElements" : 2,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
이벤트 ID |
|
|
쿠폰 이름 |
|
|
쿠폰 할인율 |
|
|
대상 고객 유형 |
|
|
이벤트 시작일 |
|
|
이벤트 종료일 |
|
|
이벤트 상태 |
|
|
총 수량 |
이벤트 상세 조회
/events/{eventId}
HTTP Request
GET /events/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 227
{
"id" : 1,
"couponName" : "event1",
"couponDiscountRate" : 10,
"targetCustomerType" : "ALL",
"eventStartDate" : "2024-08-03",
"eventEndDate" : "2024-08-13",
"state" : "ONGOING",
"totalQuantity" : 100
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
이벤트 ID |
|
|
쿠폰 이름 |
|
|
쿠폰 할인율 |
|
|
대상 고객 유형 |
|
|
이벤트 시작일 |
|
|
이벤트 종료일 |
|
|
이벤트 상태 |
|
|
총 수량 |
이벤트 생성
/events
HTTP Request
POST /events HTTP/1.1
Content-Type: application/json
Content-Length: 190
Host: localhost:8080
{
"couponName" : "event1",
"couponDiscountRate" : 10,
"targetCustomerType" : "ALL",
"eventStartDate" : "2024-08-09",
"eventEndDate" : "2024-08-18",
"totalQuantity" : 100
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
이벤트 수정
/events/{eventId}
HTTP Request
PUT /events/1 HTTP/1.1
Content-Type: application/json
Content-Length: 71
Host: localhost:8080
{
"couponName" : "updatedEvent",
"eventEndDate" : "2024-08-23"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
이벤트 삭제
/events/{eventId}
HTTP Request
DELETE /events/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success
진행 중인 이벤트 조회
/events/company/{companyId}
HTTP Request
GET /events/company/1 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 460
[ {
"id" : 1,
"couponName" : "event1",
"couponDiscountRate" : 10,
"targetCustomerType" : "ALL",
"eventStartDate" : "2024-08-03",
"eventEndDate" : "2024-08-13",
"state" : "ONGOING",
"totalQuantity" : 100
}, {
"id" : 2,
"couponName" : "event2",
"couponDiscountRate" : 20,
"targetCustomerType" : "NEW",
"eventStartDate" : "2024-08-06",
"eventEndDate" : "2024-08-10",
"state" : "ONGOING",
"totalQuantity" : 200
} ]
Response Fields
Path | Type | Description |
---|---|---|
|
|
이벤트 ID |
|
|
쿠폰 이름 |
|
|
쿠폰 할인율 |
|
|
대상 고객 유형 |
|
|
이벤트 시작일 |
|
|
이벤트 종료일 |
|
|
이벤트 상태 |
|
|
총 수량 |
회원 쿠폰 목록 조회
/events/coupons
HTTP Request
GET /events/coupons?page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 996
{
"totalElements" : 2,
"totalPages" : 1,
"size" : 10,
"content" : [ {
"id" : 1,
"couponName" : "coupon1",
"couponDiscountRate" : 10,
"targetCustomerType" : "ALL",
"eventStartDate" : "2024-08-03",
"eventEndDate" : "2024-08-13",
"state" : "ONGOING",
"totalQuantity" : 100
}, {
"id" : 2,
"couponName" : "coupon2",
"couponDiscountRate" : 20,
"targetCustomerType" : "NEW",
"eventStartDate" : "2024-08-06",
"eventEndDate" : "2024-08-10",
"state" : "ONGOING",
"totalQuantity" : 200
} ],
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"offset" : 0,
"unpaged" : false,
"paged" : true
},
"first" : true,
"last" : true,
"numberOfElements" : 2,
"empty" : false
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
쿠폰 ID |
|
|
쿠폰 이름 |
|
|
쿠폰 할인율 |
|
|
대상 고객 유형 |
|
|
이벤트 시작일 |
|
|
이벤트 종료일 |
|
|
이벤트 상태 |
|
|
총 수량 |
쿠폰 다운로드
/events/{eventId}/coupons
HTTP Request
POST /events/1/coupons HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 7
success