2025-07-18 13:47:12 +00:00
|
|
|
|
import { NextResponse } from "next/server"
|
2025-08-21 05:32:37 +00:00
|
|
|
|
import { getDatabases, getDatabaseStructure, getTableStructure } from "@/lib/db-connector"
|
|
|
|
|
|
|
|
|
|
|
|
export const dynamic = "force-dynamic"
|
2025-07-18 13:47:12 +00:00
|
|
|
|
|
2025-08-21 05:32:37 +00:00
|
|
|
|
export async function GET(req: Request) {
|
2025-07-18 13:47:12 +00:00
|
|
|
|
try {
|
2025-08-21 05:32:37 +00:00
|
|
|
|
const url = new URL(req.url)
|
|
|
|
|
|
const database = url.searchParams.get("database")
|
|
|
|
|
|
const table = url.searchParams.get("table")
|
2025-07-18 13:47:12 +00:00
|
|
|
|
|
2025-08-21 05:32:37 +00:00
|
|
|
|
// 无查询参数:返回数据库列表([{ Database: string }])
|
|
|
|
|
|
if (!database) {
|
|
|
|
|
|
const dbs = await getDatabases()
|
|
|
|
|
|
return NextResponse.json({ success: true, data: dbs })
|
2025-07-18 13:47:12 +00:00
|
|
|
|
}
|
2025-08-21 05:32:37 +00:00
|
|
|
|
|
|
|
|
|
|
// 有 database + table:返回表结构
|
|
|
|
|
|
if (database && table) {
|
|
|
|
|
|
const fields = await getTableStructure(database, table)
|
|
|
|
|
|
return NextResponse.json({ success: true, data: fields })
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 仅有 database:返回整个库的结构
|
|
|
|
|
|
const structure = await getDatabaseStructure(database)
|
|
|
|
|
|
return NextResponse.json({ success: true, data: structure })
|
2025-07-18 13:47:12 +00:00
|
|
|
|
} catch (error) {
|
2025-08-21 05:32:37 +00:00
|
|
|
|
console.error("数据库结构API错误:", error)
|
|
|
|
|
|
return NextResponse.json({ success: false, message: "获取数据库结构失败" }, { status: 500 })
|
2025-07-18 13:47:12 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|