寻迹(Financial Analyzer)API 概览

> 文档版本:2026-04-02 > 后端服务:finance-analyzer-backend(端口 3001) > 前端应用:Financial_Analyzer(React + Vite,用户端)

一、架构概览

┌─────────────────────────────────────────────────────────────┐
│                    Financial_Analyzer 前端                     │
│                  (React + Vite, port 5173)                   │
└─────────────────────┬───────────────────────────────────────┘
                      │ axios (baseURL: /api)
                      ▼
┌─────────────────────────────────────────────────────────────┐
│                finance-analyzer-backend                      │
│              (Express, port 3001, SQLite)                    │
│                                                              │
│  路由:                                                       │
│    /api/auth/*          — 认证、注册、登录、刷新Token            │
│    /api/bills/*         — 账单管理、成员管理、邀请                │
│    /api/transactions/*  — 交易记录、CSV 导入                    │
│    /api/apikeys/*       — AI Key 管理、解析、跨账单共享          │
│    /api/ai/*            — AI 对话、语音转写                      │
└─────────────────────────────────────────────────────────────┘
Admin 后台finance-admin-backend,端口 3002)通过 /api/admin/* 提供管理 API,与 Analyzer 前端无关。

二、数据库表一览

表名说明归属
users用户账号auth
refresh_tokensRefresh Token 存储auth
bills账单主表bills
bill_members账单成员与角色bills
bill_invitations邀请记录(24h 有效期)bills
categories分类(per bill)bills
transactions交易流水(per bill)transactions
bill_csv_uploadsCSV 上传元数据(per bill)transactions
accounts账户表(余额管理)-
recurring定期账单-
budgets预算-
budget_alerts预算预警-
attachments附件-
notifications通知-
api_keysAI API Keys(per bill, per user)apikeys
user_provider_order用户自定义 Key 排序apikeys
api_logsAI API 调用日志-
> 注:accountsrecurringbudgetsbudget_alertsattachmentsnotificationsapi_logs 等表的完整 CRUD API 尚未在 Analyzer 前端页面中实现(对应功能可能由 Admin 后台管理,或未开发)。

三、API 路由清单

3.1 认证 /api/auth

方法路径说明文档
GET/register-captcha获取注册图形验证码选填 未文档化
GET/login-captcha获取登录图形验证码选填 未文档化
POST/send-register-email发送注册邮箱验证码必填 01-auth.md
POST/send-reset-email发送密码重置邮件必填 01-auth.md
POST/reset-password重置密码(含 Token)必填 01-auth.md
POST/register注册账号必填 01-auth.md
POST/login用户登录必填 01-auth.md
POST/refresh刷新 Access Token必填 01-auth.md
POST/logout登出必填 01-auth.md
GET/me获取当前用户信息必填 01-auth.md
PUT/me/profile更新用户资料必填 01-auth.md
POST/guest-login游客登录必填 01-auth.md
POST/upgrade-guest升级游客为正式账号必填 01-auth.md
POST/me/onboard-done标记新手引导完成必填 01-auth.md
POST/dev/reset-ip重置 IP 限制(developer 专用)必填 01-auth.md

3.2 账单 /api/bills

方法路径说明文档
GET/获取用户所有账单必填 02-bills.md
GET/:id获取账单详情(含成员、分类)必填 02-bills.md
POST/创建新账单必填 02-bills.md
PUT/:id更新账单(名称、描述)必填 02-bills.md
DELETE/:id删除账单必填 02-bills.md
GET/:id/members获取账单成员列表必填 02-bills.md
PUT/:id/members/:memberId修改成员角色必填 02-bills.md
DELETE/:id/members/:memberId移除账单成员必填 02-bills.md
PUT/:id/prompt更新用户在账单的 AI Prompt必填 02-bills.md
GET/:id/categories获取账单分类列表必填 02-bills.md
POST/:id/invite邀请成员加入账单必填 02-bills.md

3.3 交易 /api/transactions

方法路径说明文档
GET/:billId获取账单所有交易记录必填 03-transactions.md
POST/:billId/upload上传 CSV(覆盖式导入)必填 03-transactions.md

3.4 API Keys /api/apikeys

方法路径说明文档
GET/user获取用户在账单下的 Key 列表必填 04-apikeys.md
POST/verify/user验证 Key 有效性必填 04-apikeys.md
PUT/user创建或更新 Key必填 04-apikeys.md
DELETE/user/:provider删除 Key必填 04-apikeys.md
GET/resolve/:billId获取账单最优 Key 列表必填 04-apikeys.md
GET/resolve-all/:billId获取账单所有可用 Key必填 04-apikeys.md
GET/suggestions获取跨账单 Key 导入建议必填 04-apikeys.md
POST/import跨账单导入 Key 配置必填 04-apikeys.md
PATCH/user/share切换 Key 共享状态必填 04-apikeys.md
PATCH/order/user批量更新 Key 排序必填 04-apikeys.md

3.5 AI /api/ai

方法路径说明文档
POST/transcribe音频转写(Whisper)必填 05-ai.md
POST/voice-chat语音直发对话必填 05-ai.md
POST/chat文本对话(流式 SSE)必填 05-ai.md
POST/chat-simple文本对话(非流式)必填 05-ai.md

四、前端页面与 API 映射

前端页面路由核心 API 调用数据来源
LoginPage/loginPOST /auth/login, POST /auth/registerDataContext (auth)
HomePage/GET /bills, GET /bills/:id, GET /transactions/:billIdDataContext
BillPage/bill账单管理全功能:CRUD /bills, /bills/:id/members, POST /transactions/:billId/uploadDataContext
SettingsPage/settings/apikeys/* (Key 管理)直接调用 api
ApiGuidePage/api-guide无后端调用(纯前端代码示例生成)-
DeveloperPage/dev/dev/perf-pulse(仅开发者模式可见)直接调用 api
> 注:DataContext 是全局状态管理器,在应用启动时从 /api/auth/me 获取用户信息,页面切换时通过 selectBill(billId) 触发数据加载。

五、文档完成度

文档状态备注
00-overview.md(本文)🆕 新增API 全局索引
01-auth.md必填 完整覆盖全部 auth 路由
02-bills.md必填 完整bills + members + invitations + categories
03-transactions.md必填 完整transactions + CSV upload + bill_csv_uploads
04-apikeys.md必填 完整全部 8 个端点 + 表结构
05-ai.md必填 完整chat + transcribe + voice-chat
未文档化端点(minor,Admin 或内部使用):
  • GET /auth/register-captcha — 注册图形验证码(纯前端 captcha 集成)
  • GET /auth/login-captcha — 登录图形验证码

六、待补充功能(未在 Analyzer 前端实现)

以下后端表有基础路由,但前端无对应页面:
功能说明建议
账户管理(accounts)余额账户增删改需前端开发
定期账单(recurring)每月固定收支需前端开发
预算(budgets)月度预算设置需前端开发
预算预警(budget_alerts)阈值触发提醒需前端开发
附件(attachments)上传图片等需前端开发
通知(notifications)系统通知列表需前端开发
AI 日志(api_logs)API 调用记录查询需前端开发
> 这些功能可能由 Admin 后台(finance-admin)管理,不在用户端(Analyzer)暴露。