docs: ItemMaster API Swagger 문서 추가
- 32개 엔드포인트 전체 문서화 완료 - Model/Request/Response 스키마 정의 (8+12+1) - OpenAPI 3.0 표준 준수 - SAM Swagger 패턴 따름
This commit is contained in:
@@ -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 구현 (부가 기능)
|
||||
|
||||
### 주요 작업
|
||||
|
||||
Reference in New Issue
Block a user