docs: ItemMaster API Swagger 문서 추가

- 32개 엔드포인트 전체 문서화 완료
- Model/Request/Response 스키마 정의 (8+12+1)
- OpenAPI 3.0 표준 준수
- SAM Swagger 패턴 따름
This commit is contained in:
2025-11-20 17:27:34 +09:00
parent cb05f3f89e
commit 30f308f480
2 changed files with 1156 additions and 0 deletions

View File

@@ -1,3 +1,95 @@
## 2025-11-20 (수) - ItemMaster API Swagger 문서 작성
### 주요 작업
- ItemMaster 전체 API (32개 엔드포인트) Swagger 문서화 완료
- OpenAPI 3.0 표준 준수
- 기존 SAM Swagger 패턴 따름
### 추가된 파일
1. **app/Swagger/v1/ItemMasterApi.php** (~900 lines)
- Tag 정의: ItemMaster 리소스
- Model Schemas (8개): ItemPage, ItemSection, ItemField, ItemBomItem, SectionTemplate, ItemMasterField, CustomTab, UnitOption
- Request Schemas (12개): 각 리소스별 Store/Update + ReorderRequest
- Response Schema: ItemMasterInitResponse (nested arrays)
- 32개 엔드포인트 전체 문서화
### Swagger 문서 구조
**Model Schemas**:
- ItemPage (id, page_name, item_type, sections[])
- ItemSection (id, section_name, item_type, order_no, fields[])
- ItemField (id, field_key, label, type, options[], validation_rules)
- ItemBomItem (id, item_page_id, material_code, part_code, quantity, waste_rate)
- SectionTemplate (id, name, description, fields[])
- ItemMasterField (id, field_key, label, type, category)
- CustomTab (id, label, icon, is_default, order_no)
- UnitOption (id, label, value)
**Request Schemas**:
- Store/Update 요청 스키마 (각 리소스별)
- ReorderRequest (items 배열)
**Endpoint Documentation** (32개):
- Init (1): 초기 데이터 로드
- ItemPage (5): CRUD + reorder
- ItemSection (6): CRUD + reorder + restore
- ItemField (5): CRUD + reorder
- ItemBomItem (5): CRUD + reorder
- SectionTemplate (5): CRUD + reorder
- ItemMasterField (3): index, store, delete
- CustomTab (5): CRUD + reorder
- UnitOption (3): index, store, delete
### 작업 내용
**1단계: 분석**
- 기존 CategoryApi.php 구조 분석
- ItemMaster 모델 구조 파악 (8개 모델)
- 엔드포인트 전체 목록 정리 (32개)
**2단계: Swagger 파일 생성**
- Model Schema 정의 (nullable, type, example 포함)
- Request/Response Schema 정의
- 전체 엔드포인트 @OA annotation 작성
- Security 설정 (ApiKeyAuth + BearerAuth)
**3단계: 검증**
- `php artisan l5-swagger:generate` 실행 성공
- `./vendor/bin/pint` 코드 포맷팅 (1개 스타일 이슈 수정)
- 라우트 목록 확인 (32개 엔드포인트 정상)
### 검증 결과
**Swagger 생성**:
```bash
php artisan l5-swagger:generate
# 결과: Regenerating docs v1 성공
```
**코드 포맷팅**:
```bash
./vendor/bin/pint app/Swagger/v1/ItemMasterApi.php
# 결과: 1 file, 1 style issue fixed
```
**라우트 확인**:
```bash
php artisan route:list --path=item-master | grep -c "item-master"
# 결과: 32개 엔드포인트
```
### 다음 단계
**남은 작업**:
- API 테스트 케이스 작성
- Frontend 연동 (React ItemMaster 화면)
### Git 커밋
- 커밋 예정: Swagger 문서 추가
---
## 2025-11-20 (수) - ItemMaster Phase 3 API 구현 (부가 기능)
### 주요 작업

File diff suppressed because it is too large Load Diff