feat: API Flow Tester 기능 기반 구조 추가

- 모델: AdminApiFlow, AdminApiFlowRun
- 컨트롤러: FlowTesterController
- 뷰: index, create, edit, history, run-detail
- 사이드바 메뉴에 "개발 도구" 그룹 추가
- 라우트 설정
This commit is contained in:
2025-11-27 19:02:18 +09:00
parent 604aa256f6
commit ff943ab728
10 changed files with 1442 additions and 1 deletions

View File

@@ -3,6 +3,7 @@
use App\Http\Controllers\ArchivedRecordController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\DepartmentController;
use App\Http\Controllers\DevTools\FlowTesterController;
use App\Http\Controllers\MenuController;
use App\Http\Controllers\PermissionController;
use App\Http\Controllers\RoleController;
@@ -103,4 +104,27 @@
Route::get('/', function () {
return redirect()->route('dashboard');
});
/*
|--------------------------------------------------------------------------
| 개발 도구 Routes
|--------------------------------------------------------------------------
*/
Route::prefix('dev-tools')->name('dev-tools.')->group(function () {
// API 플로우 테스터
Route::prefix('flow-tester')->name('flow-tester.')->group(function () {
Route::get('/', [FlowTesterController::class, 'index'])->name('index');
Route::get('/create', [FlowTesterController::class, 'create'])->name('create');
Route::post('/', [FlowTesterController::class, 'store'])->name('store');
Route::get('/{id}', [FlowTesterController::class, 'edit'])->name('edit');
Route::put('/{id}', [FlowTesterController::class, 'update'])->name('update');
Route::delete('/{id}', [FlowTesterController::class, 'destroy'])->name('destroy');
Route::post('/{id}/clone', [FlowTesterController::class, 'clone'])->name('clone');
Route::post('/validate-json', [FlowTesterController::class, 'validateJson'])->name('validate-json');
Route::post('/{id}/run', [FlowTesterController::class, 'run'])->name('run');
Route::get('/runs/{runId}/status', [FlowTesterController::class, 'runStatus'])->name('run-status');
Route::get('/{id}/history', [FlowTesterController::class, 'history'])->name('history');
Route::get('/runs/{runId}', [FlowTesterController::class, 'runDetail'])->name('run-detail');
});
});
});