판매자 서비스 (Seller Service)
개요
판매자 서비스는 판매자 등록, 스토어 관리, 상품 등록, 사업자 서류 검증을 담당합니다. S3를 활용한 서류 업로드 기능을 제공합니다.
| 항목 | 내용 |
|---|---|
| 언어 | Java 17 |
| 프레임워크 | Spring Boot 3.2 |
| 데이터베이스 | Aurora PostgreSQL (Global Database) |
| 파일 저장소 | Amazon S3 |
| 네임스페이스 | mall-seller |
| 포트 | 8080 |
| 헬스체크 | /actuator/health |
아키텍처
API 엔드포인트
| 메서드 | 경로 | 설명 |
|---|---|---|
POST | /api/v1/sellers/register | 판매자 등록 |
GET | /api/v1/sellers/{id} | 판매자 조회 |
GET | /api/v1/sellers | 판매자 목록 조회 |
POST | /api/v1/sellers/{id}/products | 상품 등록 |
GET | /api/v1/sellers/{id}/products | 판매자 상품 목록 조회 |
POST | /api/v1/sellers/{id}/documents | 서류 업로드 URL 생성 |
판매자 등록
POST /api/v1/sellers/register
요청:
{
"businessName": "서울마트",
"email": "seller@seoulmart.com",
"phone": "02-1234-5678"
}
응답 (201 Created):
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"businessName": "서울마트",
"email": "seller@seoulmart.com",
"phone": "02-1234-5678",
"status": "PENDING",
"createdAt": "2024-01-15T10:00:00"
}
판매자 조회
GET /api/v1/sellers/{id}
응답 (200 OK):
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"businessName": "서울마트",
"email": "seller@seoulmart.com",
"phone": "02-1234-5678",
"status": "APPROVED",
"createdAt": "2024-01-15T10:00:00"
}
판매자 목록 조회
GET /api/v1/sellers
응답 (200 OK):
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"businessName": "서울마트",
"email": "seller@seoulmart.com",
"phone": "02-1234-5678",
"status": "APPROVED",
"createdAt": "2024-01-15T10:00:00"
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"businessName": "부산상회",
"email": "seller@busanshop.com",
"phone": "051-9876-5432",
"status": "PENDING",
"createdAt": "2024-01-16T14:00:00"
}
]
상품 등록
POST /api/v1/sellers/{id}/products
요청:
{
"productId": "prod-001",
"sku": "SKU-SEOUL-ELECTRONICS-001",
"price": 299000.00,
"stock": 100
}
응답 (201 Created):
{
"id": "660e8400-e29b-41d4-a716-446655440000",
"sellerId": "550e8400-e29b-41d4-a716-446655440000",
"productId": "prod-001",
"sku": "SKU-SEOUL-ELECTRONICS-001",
"price": 299000.00,
"stock": 100,
"active": true,
"createdAt": "2024-01-15T11:00:00"
}
판매자 상품 목록 조회
GET /api/v1/sellers/{id}/products
응답 (200 OK):
[
{
"id": "660e8400-e29b-41d4-a716-446655440000",
"sellerId": "550e8400-e29b-41d4-a716-446655440000",
"productId": "prod-001",
"sku": "SKU-SEOUL-ELECTRONICS-001",
"price": 299000.00,
"stock": 100,
"active": true,
"createdAt": "2024-01-15T11:00:00"
},
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"sellerId": "550e8400-e29b-41d4-a716-446655440000",
"productId": "prod-002",
"sku": "SKU-SEOUL-FASHION-001",
"price": 89000.00,
"stock": 50,
"active": true,
"createdAt": "2024-01-15T11:30:00"
}
]
서류 업로드 URL 생성
POST /api/v1/sellers/{id}/documents
요청:
{
"fileName": "business_license.pdf",
"contentType": "application/pdf",
"documentType": "BUSINESS_LICENSE"
}
지원 서류 타입:
BUSINESS_LICENSE- 사업자등록증BANK_ACCOUNT- 통장 사본ID_CARD- 대표자 신분증
응답 (200 OK):
{
"documentId": "doc-550e8400-e29b-41d4-a716-446655440000",
"uploadUrl": "https://s3.amazonaws.com/bucket/sellers/550e8400/documents/doc-550e8400?X-Amz-Algorithm=...",
"key": "sellers/550e8400/documents/doc-550e8400/business_license.pdf",
"expiresAt": "2024-01-15T11:15:00"
}