feat: implement backend database management API and frontend service integration

This commit is contained in:
Ümit Tunç
2026-04-24 12:59:55 +03:00
parent 853a730210
commit 5c0744d5d1
5 changed files with 101 additions and 3 deletions
@@ -176,4 +176,15 @@ class SchemaController extends Controller
return Response::json(['error' => $e->getMessage()], 400);
}
}
public function tablesMetadata(Request $request, $database)
{
try {
$request->merge(['database' => $database]);
$this->initializeDriver($request);
return Response::json($this->databaseService->getTablesMetadata($database));
} catch (\Exception $e) {
return Response::json(['error' => $e->getMessage()], 400);
}
}
}
+8
View File
@@ -138,4 +138,12 @@ class DatabaseService
{
return $this->getDriver()->truncateTable($table);
}
/**
* Get metadata for all tables in a database.
*/
public function getTablesMetadata(string $database): array
{
return $this->getDriver()->getTablesMetadata($database);
}
}
+1
View File
@@ -12,6 +12,7 @@ Route::prefix('schema')->group(function () {
Route::get('/databases', [SchemaController::class, 'databases']);
Route::get('/tables/{database}', [SchemaController::class, 'tables']);
Route::get('/metadata/{database}', [SchemaController::class, 'metadata']);
Route::get('/metadata/{database}/tables', [SchemaController::class, 'tablesMetadata']);
Route::get('/metadata/{database}/{table}', [SchemaController::class, 'tableMetadata']);
Route::post('/truncate/{table}', [SchemaController::class, 'truncate']);
Route::get('/{table}', [SchemaController::class, 'schema']);