diff --git a/src/api/database.ts b/src/api/database.ts new file mode 100644 index 0000000..3406c66 --- /dev/null +++ b/src/api/database.ts @@ -0,0 +1,68 @@ +import request from '@/utils/request' +import type { + DatabaseType, + DatabaseInfo, + DatabaseItem, + CreateDatabaseRequest, + UpdateDatabaseRequest, + DatabaseConnectionInfo, + DatabaseListParams, + DatabaseListResponse +} from '@/types/database' + +// 获取数据库信息 +export function getDatabaseInfo(type: DatabaseType): Promise { + return request.get(`/api/database/${type}/info`) +} + +// 启动数据库 +export function startDatabase(type: DatabaseType): Promise { + return request.post(`/api/database/${type}/start`) +} + +// 停止数据库 +export function stopDatabase(type: DatabaseType): Promise { + return request.post(`/api/database/${type}/stop`) +} + +// 重启数据库 +export function restartDatabase(type: DatabaseType): Promise { + return request.post(`/api/database/${type}/restart`) +} + +// 获取数据库列表 +export function getDatabaseList(type: DatabaseType, params?: DatabaseListParams): Promise { + return request.get(`/api/database/${type}/list`, { params }) +} + +// 创建数据库 +export function createDatabase(type: DatabaseType, data: CreateDatabaseRequest): Promise { + return request.post(`/api/database/${type}`, data) +} + +// 更新数据库 +export function updateDatabase(type: DatabaseType, id: number, data: UpdateDatabaseRequest): Promise { + return request.put(`/api/database/${type}/${id}`, data) +} + +// 删除数据库 +export function deleteDatabase(type: DatabaseType, id: number): Promise { + return request.delete(`/api/database/${type}/${id}`) +} + +// 获取连接信息 +export function getDatabaseConnectionInfo(type: DatabaseType, id: number): Promise { + return request.get(`/api/database/${type}/${id}/connection`) +} + +// 导出类型 +export type { + DatabaseType, + DatabaseInfo, + DatabaseItem, + CreateDatabaseRequest, + UpdateDatabaseRequest, + DatabaseConnectionInfo, + DatabaseListParams, + DatabaseListResponse +} diff --git a/src/types/database.ts b/src/types/database.ts new file mode 100644 index 0000000..76ed176 --- /dev/null +++ b/src/types/database.ts @@ -0,0 +1,63 @@ +// 数据库类型 +export type DatabaseType = 'mysql' | 'postgresql' | 'redis' + +// 数据库状态 +export type DatabaseStatus = 'running' | 'stopped' | 'error' + +// 数据库信息 +export interface DatabaseInfo { + type: DatabaseType + status: DatabaseStatus + version: string +} + +// 数据库实例 +export interface DatabaseItem { + id: number + name: string + username: string + password: string + description?: string + createdAt: string + updatedAt?: string +} + +// 创建数据库请求 +export interface CreateDatabaseRequest { + name: string + username: string + password: string + description?: string +} + +// 更新数据库请求 +export interface UpdateDatabaseRequest { + name?: string + username?: string + password?: string + description?: string +} + +// 数据库连接信息 +export interface DatabaseConnectionInfo { + host: string + port: number + username: string + password: string + database: string +} + +// 分页请求 +export interface DatabaseListParams { + keyword?: string + page?: number + pageSize?: number +} + +// 分页响应 +export interface DatabaseListResponse { + list: DatabaseItem[] + total: number + page: number + pageSize: number +}