배송담당자 생성/조회/배정/삭제를 담당하는 마이크로서비스입니다.
- Service name:
delivery-manager-service(spring.application.name) - Port:
8084(project-configs/configs/delivery-manager-service/delivery-manager-service.yml) - External API base path:
/api/v1/delivery-managers - Internal API base path:
/internal/v1/delivery-managers(서비스 간 통신 전용, Gateway 라우팅 제외)
POST /api/v1/delivery-managers배송담당자 생성GET /api/v1/delivery-managers배송담당자 목록 조회GET /api/v1/delivery-managers/{deliveryManagerId}배송담당자 단건 조회DELETE /api/v1/delivery-managers/{deliveryManagerId}배송담당자 삭제(소프트/권한 정책에 따름)GET /api/v1/delivery-managers/me배송담당자 본인 조회PATCH /api/v1/delivery-managers/me/deliveries/{deliveryId}/complete배송담당자 배송 완료
POST /internal/v1/delivery-managers/assignments배송담당자 배정
Gateway는 JWT 검증 후 아래 헤더를 하위 서비스로 전달합니다.
X-User-Id: 사용자 UUID (Keycloaksub)X-User-Email: 사용자 이메일X-User-Role: 사용자 권한 (예:ADMIN,HUB_ADMIN,DELIVERY,COMPANY)
클라이언트(Postman)는 Gateway로 요청할 때 보통 아래만 넣으면 됩니다.
Authorization: Bearer {JWT_TOKEN}
delivery-manager-service컨트롤러는X-User-Id/X-User-Role헤더를 사용합니다.
(Gateway가 자동 주입. delivery-manager-service를 직접 호출하는 경우에는 Postman에서 직접 넣어야 합니다.)
Base URL
http://localhost:8080
POST http://localhost:8080/api/v1/delivery-managers
Headers:
Content-Type: application/json
Authorization: Bearer <JWT_TOKEN>
Body:
{
"targetUserId": "123e4567-e89b-12d3-a456-426614174000",
"type": "HUB"
}
GET http://localhost:8080/api/v1/delivery-managers?page=0&size=10&sortBy=createdAt
Headers:
Authorization: Bearer <JWT_TOKEN>
Base URL
http://localhost:8084
POST http://localhost:8084/api/v1/delivery-managers
Headers:
Content-Type: application/json
X-User-Id: <USER_UUID>
GET http://localhost:8084/api/v1/delivery-managers?page=0&size=10&sortBy=createdAt
GET http://localhost:8084/api/v1/delivery-managers/<DELIVERY_MANAGER_ID_UUID>
Headers:
X-User-Id: <USER_UUID>
X-User-Role: ADMIN
X-User-Role가능한 값:ADMIN | HUB_ADMIN
배송담당자 생성 플로우에서 외부 서비스 호출이 포함되어 있습니다(Feign).
user-service: 배송매니저 사용자 정보 조회
위 서비스들이 내려가 있으면 배송담당자 생성 시 실패할 수 있습니다.
아래 인프라가 먼저 실행되어 있어야 합니다.
- Config Server
- Eureka Server
- PostgreSQL
- Redis
- Keycloak
- Zipkin
위 인프라는 infra-repo에서 실행할 수 있습니다.