반품 서비스 (Returns Service)
개요
반품 서비스는 반품 요청의 생성, 승인, 거부 처리와 환불 조정을 담당합니다. 반품 승인 시 결제 서비스와 연동하여 환불 처리를 진행합니다.
| 항목 | 내용 |
|---|---|
| 언어 | Java 17 |
| 프레임워크 | Spring Boot 3.2 |
| 데이터베이스 | Aurora PostgreSQL (Global Database) |
| 네임스페이스 | mall-returns |
| 포트 | 8080 |
| 헬스체크 | /actuator/health |
아키텍처
API 엔드포인트
| 메서드 | 경로 | 설명 |
|---|---|---|
POST | /api/v1/returns | 반품 요청 생성 |
GET | /api/v1/returns/{id} | 반품 요청 조회 |
GET | /api/v1/returns?userId={userId} | 사용자별 반품 목록 조회 |
PUT | /api/v1/returns/{id}/approve | 반품 승인 |
PUT | /api/v1/returns/{id}/reject | 반품 거부 |
반품 요청 생성
POST /api/v1/returns
요청:
{
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user-123",
"reason": "상품 불량",
"items": [
{
"productId": "prod-001",
"sku": "SKU-ELECTRONICS-001",
"quantity": 1,
"reason": "화면 결함"
}
]
}
응답 (201 Created):
{
"id": "770e8400-e29b-41d4-a716-446655440000",
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user-123",
"reason": "상품 불량",
"status": "PENDING",
"items": [
{
"id": "880e8400-e29b-41d4-a716-446655440000",
"productId": "prod-001",
"sku": "SKU-ELECTRONICS-001",
"quantity": 1,
"reason": "화면 결함"
}
],
"createdAt": "2024-01-20T10:00:00",
"updatedAt": "2024-01-20T10:00:00"
}
반품 요청 조회
GET /api/v1/returns/{id}
응답 (200 OK):
{
"id": "770e8400-e29b-41d4-a716-446655440000",
"orderId": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user-123",
"reason": "상품 불량",
"status": "PENDING",
"items": [
{
"id": "880e8400-e29b-41d4-a716-446655440000",
"productId": "prod-001",
"sku": "SKU-ELECTRONICS-001",
"quantity": 1,
"reason": "화면 결함"
}
],
"createdAt": "2024-01-20T10:00:00",
"updatedAt": "2024-01-20T10:00:00"
}