// server/api/records.get.ts - 最近问答记录接口,供 Nuxt Dashboard 表格展示 import { setResponseStatus } from "h3"; import { invalidAccessTokenResponse, verifyAccessToken } from "~~/server/utils/auth"; import { createApiLogger } from "~~/server/utils/logging"; import { getQaRecords } from "~~/server/utils/runtimeState"; /** * 最近问答记录接口 * * 旧 Python Dashboard 直接在服务端模板里读取内存 records;迁移到 Nuxt 后, * 前端表格需要一个 JSON 数据源,所以这里暴露同样的内存记录副本。 * * 安全边界: * - 配置 ACCESS_TOKEN 时必须携带 `X-Access-Token` 或 query `token` * - 这里只返回题目、选项和最终答案,不包含 OpenAI 响应体、API Key 或内部错误 * - 记录仅存在当前进程内,重启或多实例部署不会共享 */ export default defineEventHandler((event) => { const logger = createApiLogger(event, "api.records"); if (!verifyAccessToken(event)) { setResponseStatus(event, 403); logger.warn("invalid_access_token"); return { success: false, message: invalidAccessTokenResponse().msg, records: [] }; } const records = getQaRecords(); logger.info("finish_success", { count: records.length }); return { success: true, records }; });