Files
sam-api/routes/api.php
권혁성 a6e29bc1f3 feat: [품질관리] 백엔드 API 구현 - 품질관리서 + 실적신고
- 품질관리서(quality_documents) CRUD API 14개 엔드포인트
- 실적신고(performance_reports) 관리 API 6개 엔드포인트
- DB 마이그레이션 4개 테이블 (quality_documents, quality_document_orders, quality_document_locations, performance_reports)
- 모델 4개 + 서비스 2개 + 컨트롤러 2개 + FormRequest 4개
- stats() ambiguous column 버그 수정 (JOIN 시 테이블 접두사 추가)
- missing() status_code 컬럼명/값 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 01:28:53 +09:00

68 lines
2.5 KiB
PHP

<?php
/**
* API 라우트 - 버전 기반 라우팅 시스템
*
* 지원하는 버전 선택 방식:
* 1. Accept-Version 헤더: Accept-Version: v2
* 2. X-API-Version 헤더: X-API-Version: v2
* 3. Query Parameter: ?api_version=v2
*
* Fallback 동작:
* - v2 요청 시 v2 라우트가 없으면 자동으로 v1으로 폴백
* - 응답 헤더에 X-API-Version 포함
*/
use App\Http\Controllers\Api\V1\FileStorageController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| V1 API Routes (기본 버전)
|--------------------------------------------------------------------------
*/
Route::prefix('v1')->group(function () {
// 도메인별 라우트 파일 로드
require __DIR__.'/api/v1/auth.php';
require __DIR__.'/api/v1/admin.php';
require __DIR__.'/api/v1/users.php';
require __DIR__.'/api/v1/tenants.php';
require __DIR__.'/api/v1/hr.php';
require __DIR__.'/api/v1/finance.php';
require __DIR__.'/api/v1/sales.php';
require __DIR__.'/api/v1/inventory.php';
require __DIR__.'/api/v1/production.php';
require __DIR__.'/api/v1/design.php';
require __DIR__.'/api/v1/files.php';
require __DIR__.'/api/v1/boards.php';
require __DIR__.'/api/v1/documents.php';
require __DIR__.'/api/v1/common.php';
require __DIR__.'/api/v1/stats.php';
require __DIR__.'/api/v1/app.php';
require __DIR__.'/api/v1/audit.php';
require __DIR__.'/api/v1/esign.php';
require __DIR__.'/api/v1/quality.php';
// 공유 링크 다운로드 (인증 불필요 - auth.apikey 그룹 밖)
Route::get('/files/share/{token}', [FileStorageController::class, 'downloadShared'])->name('v1.files.share.download');
});
/*
|--------------------------------------------------------------------------
| V2 API Routes (확장 버전 - 필요시 추가)
|--------------------------------------------------------------------------
|
| V2 라우트를 추가할 때:
| 1. routes/api/v2/ 디렉토리에 도메인별 파일 생성
| 2. 아래 주석을 해제하고 필요한 파일만 require
| 3. V2에 없는 라우트는 자동으로 V1으로 폴백
|
*/
// Route::prefix('v2')->group(function () {
// // V2 전용 라우트만 정의 (V1에 없거나 변경된 API)
// require __DIR__ . '/api/v2/auth.php'; // 예: 새로운 인증 방식
// require __DIR__ . '/api/v2/users.php'; // 예: 확장된 사용자 API
//
// // V1과 동일한 라우트는 정의하지 않음 - 미들웨어가 자동 폴백 처리
// });