7개 마이크로서비스 API 설계 완료

- User Service API (7 APIs, 31KB)
- Event Service API (14 APIs, 41KB)
- AI Service API (3 APIs, 26KB)
- Content Service API (6 APIs, 37KB)
- Distribution Service API (2 APIs, 21KB)
- Participation Service API (5 APIs, 25KB)
- Analytics Service API (4 APIs, 28KB)

총 41개 API 엔드포인트, 6,912줄, OpenAPI 3.0 표준 준수
유저스토리 기반 설계, JWT 인증, Kafka/Redis 통합 문서화
API 설계서 작성 완료 (종합 가이드 포함)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
cherry2250
2025-10-23 16:56:54 +09:00
parent 781c3944ed
commit b9745f24e5
8 changed files with 5019 additions and 3323 deletions
+136
View File
@@ -487,6 +487,101 @@ paths:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/users/{userId}/store:
get:
tags:
- Profile
summary: 매장정보 조회 (서비스 연동용)
description: |
특정 사용자의 매장정보를 조회하는 API (내부 서비스 연동용)
**사용 목적:**
- Event Service에서 이벤트 생성 시 매장정보 조회
- Content Service에서 매장정보 기반 콘텐츠 생성
- Service-to-Service 통신용 내부 API
**주의사항:**
- Internal API로 외부 노출 금지
- API Gateway에서 인증된 서비스만 접근 허용
- 매장정보는 Redis 캐시 우선 조회 (TTL 30분)
operationId: getStoreByUserId
x-user-story: Service Integration
x-controller: UserController
security:
- BearerAuth: []
parameters:
- name: userId
in: path
required: true
description: 사용자 ID
schema:
type: integer
format: int64
example: 123
responses:
'200':
description: 매장정보 조회 성공
content:
application/json:
schema:
$ref: '#/components/schemas/StoreDetailResponse'
examples:
success:
summary: 매장정보 조회 성공 응답
value:
userId: 123
storeId: 456
storeName: 맛있는집
industry: 음식점
address: 서울시 강남구 테헤란로 123
businessHours: "월-금 11:00-22:00, 토-일 12:00-21:00"
businessNumber: "1234567890"
'401':
description: 인증 실패
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized:
summary: 인증 실패
value:
code: AUTH_002
error: 유효하지 않은 토큰입니다
timestamp: 2025-10-22T10:30:00Z
'403':
description: 권한 없음 (내부 서비스만 접근 가능)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden:
summary: 권한 없음
value:
code: AUTH_003
error: 이 API는 내부 서비스만 접근 가능합니다
timestamp: 2025-10-22T10:30:00Z
'404':
description: 사용자 또는 매장을 찾을 수 없음
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
notFound:
summary: 사용자 또는 매장 없음
value:
code: USER_003
error: 사용자 또는 매장을 찾을 수 없습니다
timestamp: 2025-10-22T10:30:00Z
'500':
description: 서버 오류
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
securitySchemes:
BearerAuth:
@@ -844,6 +939,46 @@ components:
description: 응답 메시지
example: 비밀번호가 성공적으로 변경되었습니다
StoreDetailResponse:
type: object
required:
- userId
- storeId
- storeName
- industry
- address
properties:
userId:
type: integer
format: int64
description: 사용자 ID
example: 123
storeId:
type: integer
format: int64
description: 매장 ID
example: 456
storeName:
type: string
description: 매장명
example: 맛있는집
industry:
type: string
description: 업종
example: 음식점
address:
type: string
description: 매장 주소
example: 서울시 강남구 테헤란로 123
businessHours:
type: string
description: 영업시간
example: "월-금 11:00-22:00, 토-일 12:00-21:00"
businessNumber:
type: string
description: 사업자번호 (10자리)
example: "1234567890"
ErrorResponse:
type: object
required:
@@ -863,6 +998,7 @@ components:
- USER_005 # 동시성 충돌
- AUTH_001 # 인증 실패
- AUTH_002 # 유효하지 않은 토큰
- AUTH_003 # 권한 없음 (내부 서비스만 접근)
- VALIDATION_ERROR # 입력 검증 오류
error:
type: string