From 7b8f8791c998aa378531e8f5b0ae1880439c0ca9 Mon Sep 17 00:00:00 2001 From: hskwon Date: Mon, 17 Nov 2025 14:30:16 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20GET=20/items=20=EC=97=94=EB=93=9C?= =?UTF-8?q?=ED=8F=AC=EC=9D=B8=ED=8A=B8=20Swagger=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ItemsApi.php에 index() 메서드 문서 추가 - 품목 목록 조회 (통합) 엔드포인트 문서화 - 페이징, 검색, 필터 파라미터 정의 - Swagger JSON 재생성 완료 --- app/Swagger/v1/ItemsApi.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/app/Swagger/v1/ItemsApi.php b/app/Swagger/v1/ItemsApi.php index f5a6eb3..c6d4464 100644 --- a/app/Swagger/v1/ItemsApi.php +++ b/app/Swagger/v1/ItemsApi.php @@ -91,6 +91,41 @@ */ class ItemsApi { + /** + * @OA\Get( + * path="/api/v1/items", + * tags={"Items"}, + * summary="품목 목록 조회 (통합)", + * description="Product + Material 통합 조회, 페이징 지원", + * security={{"ApiKeyAuth": {}, "BearerAuth": {}}}, + * + * @OA\Parameter(ref="#/components/parameters/Page"), + * @OA\Parameter(ref="#/components/parameters/Size"), + * @OA\Parameter(name="search", in="query", @OA\Schema(type="string"), description="검색어 (code, name)", example="P-001"), + * @OA\Parameter(name="product_type", in="query", @OA\Schema(type="string"), description="품목 타입 필터 (FG,PT,SM,RM,CS)", example="FG"), + * @OA\Parameter(name="category_id", in="query", @OA\Schema(type="integer"), description="카테고리 ID 필터", example=1), + * @OA\Parameter(name="is_active", in="query", @OA\Schema(type="boolean"), description="활성 상태 필터", example=true), + * + * @OA\Response( + * response=200, + * description="성공", + * + * @OA\JsonContent( + * type="object", + * + * @OA\Property(property="success", type="boolean", example=true), + * @OA\Property(property="message", type="string", example="품목 목록을 조회했습니다."), + * @OA\Property(property="data", type="array", @OA\Items(ref="#/components/schemas/Item")), + * @OA\Property(property="meta", ref="#/components/schemas/PaginationMeta") + * ) + * ), + * + * @OA\Response(response=401, description="인증 실패", @OA\JsonContent(ref="#/components/schemas/ErrorResponse")), + * @OA\Response(response=403, description="권한 없음", @OA\JsonContent(ref="#/components/schemas/ErrorResponse")) + * ) + */ + public function index() {} + /** * @OA\Post( * path="/api/v1/items",