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 구현 (부가 기능)
|
## 2025-11-20 (수) - ItemMaster Phase 3 API 구현 (부가 기능)
|
||||||
|
|
||||||
### 주요 작업
|
### 주요 작업
|
||||||
|
|||||||
1064
app/Swagger/v1/ItemMasterApi.php
Normal file
1064
app/Swagger/v1/ItemMasterApi.php
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user