From 22fbd42158f685a5d43ae93a8c8be731ca3cc290 Mon Sep 17 00:00:00 2001 From: Caihaohan Date: Tue, 27 Jan 2026 20:14:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E8=A7=84=E5=88=99=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/api/keyword-cloud/rules/route.ts | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/app/api/keyword-cloud/rules/route.ts diff --git a/src/app/api/keyword-cloud/rules/route.ts b/src/app/api/keyword-cloud/rules/route.ts new file mode 100644 index 0000000..612af18 --- /dev/null +++ b/src/app/api/keyword-cloud/rules/route.ts @@ -0,0 +1,49 @@ +import { NextResponse } from 'next/server'; +import { getVisualStyleRules } from '@/hooks/useKeywordCloud'; + +export const dynamic = 'force-dynamic'; + +/** + * GET /api/keyword-cloud/rules + * 获取视觉样式规则配置 + */ +export async function GET(request: Request) { + try { + const { searchParams } = new URL(request.url); + const enabled = searchParams.get('enabled'); + + const rules = await getVisualStyleRules( + enabled !== null ? { enabled: enabled === 'true' } : undefined + ); + + // 转换规则格式以匹配前端期望 + const formattedRules = rules.map(rule => ({ + id: rule.id, + name: rule.name, + minScore: rule.minScore, + maxScore: rule.maxScore, + visualConfig: { + color: rule.color, + size: rule.size, + border: rule.border, + rotation: rule.rotation, + }, + priority: rule.priority, + enabled: rule.enabled, + })); + + return NextResponse.json({ + success: true, + rules: formattedRules, + }); + } catch (error) { + console.error('Error fetching visual style rules:', error); + return NextResponse.json( + { + success: false, + error: 'Failed to fetch rules', + }, + { status: 500 } + ); + } +}