对照 ledgerly 自文档上次更新以来的全部改动,补充新功能文档、修正品牌与版本残留,并新增下载与安装页;配图已重新截取并上传 OSS,本地截图目录不纳入版本管理。 变更内容: - 新增「智能查数」「账单关系」两个使用文档页,并登记侧边栏与总览 - 设置页扩充为八个面板(账号安全、数据库实时进度、外观、导航等)并改为即时保存 - 收支记录补充关系列、批量操作、AI 搜索浮窗、可配置分页与「账单详情」弹窗 - 统计面板补充饼图/渠道图下钻与筛选双向联动;规则管理补充批量删除 - AI 能力补充智能查数与关系命名;新增下载与安装页 - 开发文档同步:AI 13 类调用、数据模型 24 张表、API、前端偏好、构建部署 - 统一「汇账 Ledgerly」品牌与「设置/日志」菜单文案,版本号对齐 0.1 - 截图脚本新增账单详情等场景并更新登记 说明: - download.md 的 OSS 下载链接保持待发布产物回填,暂不调整 - 已通过 npm run docs:build 与 npm run typecheck:scripts
5.9 KiB
5.9 KiB
API 文档
系统使用 Knife4j(OpenAPI 3) 生成接口文档,后端启动后可直接访问。
访问入口
| 入口 | 地址 | 说明 |
|---|---|---|
| Knife4j UI | http://<host>:<port>/doc.html |
增强版接口文档界面 |
| OpenAPI JSON | http://<host>:<port>/v3/api-docs |
标准 OpenAPI 描述 |
| Swagger UI | http://<host>:<port>/swagger-ui/index.html |
原生界面 |
开发模式下默认端口为 8080,例如 http://localhost:8080/doc.html。
认证
-
接口统一使用 JWT Bearer 鉴权,登录接口返回 token 后,在请求头携带:
Authorization: Bearer <token> -
Knife4j 配置中已声明全局
Bearer安全方案,可在文档界面直接填入 token 调试。 -
无需鉴权的接口:
/api/user/login、/api/user/register、/api/user/registration-status、/api/database/status。 -
日志实时推送等 SSE 接口因
EventSource无法自定义请求头,兼容通过?token=查询参数鉴权。
接口分组
| 控制器 | 路径前缀 | 说明 |
|---|---|---|
UserController |
/api/user |
登录、注册、用户信息、注册开关、修改密码 |
TransactionController |
/api/transaction |
收支记录增删改查、批量创建与操作、备注隐藏、导出、交易渠道选项 |
TransactionGroupController |
/api/transaction/group |
账单关系组的查询、创建、更新、删除与名称历史 |
BillImportController |
/api/transaction/import |
账单解析与确认导入 |
ChannelController |
/api/channel |
用户自定义交易渠道的增删改查 |
CategoryController |
/api/category |
分类管理 |
TagController |
/api/tag |
标签管理 |
RuleController |
/api/rule |
自定义规则(列表、分页查询、增删改、启停、批量删除) |
StatisticsController |
/api/statistics |
统计汇总、分类、趋势、分组 |
AiController |
/api/ai |
AI 建议、查询、智能查数、文字/图片记账、渠道/关系/规则生成、统计搜索、用量 |
NotificationController |
/api/notification |
通知配置、渠道、发送日志 |
EmailBillController |
/api/email-bill |
邮箱配置、发件人规则、待处理账单 |
LogController |
/api/log |
访问日志、登录日志、运行日志与 SSE |
DatabaseController |
/api/database |
数据库状态、测试与配置(含 SSE 进度) |
AppConfigController |
/api/app |
应用配置(通知链接、日志保留) |
UserSettingController |
/api/setting |
用户偏好(账单来源统计默认值、展示样式、隐藏备注显示、分页、导航) |
关键接口
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/transaction/channels |
获取交易渠道选项(内置 + 当前用户自定义,含 code/name/builtin) |
| POST | /api/transaction/batch |
批量创建交易记录(逐条可带 imageId/rawData),导入时按「类型+金额+时间」跳过重复 |
| PUT | /api/transaction/{id}/remark-hidden |
隐藏 / 取消隐藏某条记录的备注 |
| GET / POST / PUT / DELETE | /api/channel、/api/channel/{id} |
自定义渠道列表(含使用账单数)、新建、改名、删除 |
| GET | /api/transaction/group/by-transaction/{id} |
查询某笔账单所属的全部关系组(含成员快照) |
| GET | /api/transaction/group/names |
关系名称历史(可按 type 过滤,去重、倒序) |
| POST / PUT / DELETE | /api/transaction/group、/api/transaction/group/{id} |
创建 / 更新 / 删除账单关系组(删除仅解除关联,不删除账单) |
| PUT | /api/user/password |
修改当前登录用户的密码(校验原密码,新旧需不同) |
| POST | /api/ai/record/image |
上传一至多张账单/支付截图(字段 files),调用视觉模型识别为多条交易记录 |
| POST | /api/ai/record/image/stream |
图片记账(SSE):实时推送识别进度,结束返回完整结果 |
| GET | /api/ai/image/{id} |
查看本人上传的图片记账图片,?thumbnail=true 返回缩略图 |
| POST | /api/ai/channel |
由自然语言描述生成交易渠道名称 |
| POST | /api/ai/relation |
由关联账单生成关系名称与备注 |
| POST | /api/ai/sql |
智能查数:自然语言生成只读 SQL 并执行 |
| GET / DELETE | /api/ai/sql/history |
查询 / 清空智能查数提问历史(limit 上限 200) |
| GET | /api/rule/page |
分页查询规则(keyword / enabled / type) |
| DELETE | /api/rule/batch |
批量删除规则(body { ids },返回实际删除数) |
| POST | /api/ai/rule/suggest |
依据所选已打标签记录生成规则建议(含 duplicate 标记) |
| POST | /api/ai/rule/apply |
批量创建规则(自动去重、按需新建分类/标签) |
| POST | /api/ai/statistics |
自然语言解析为统计面板参数 |
| GET / PUT | /api/setting/excluded-display-style |
查询 / 更新「不计入统计」记录展示样式 |
| GET / PUT | /api/setting/show-hidden-data |
查询 / 更新是否显示已隐藏备注的记录 |
| GET / PUT | /api/setting/pagination-prefs |
查询 / 更新表格分页候选列表与默认每页条数 |
| GET / PUT | /api/setting/nav-menu |
查询 / 更新左侧导航顺序与显隐 |
| GET / PUT | /api/setting/bill-source-include-in-stats |
查询 / 更新按账单来源的「计入统计」默认值 |
| POST | /api/database/config/stream |
应用数据库配置并通过 SSE 推送进度(另有 /api/database/test/stream) |
统一响应结构
{
"code": 200,
"message": "success",
"data": {}
}
code非 200 表示业务失败,message为错误信息。- 分页接口的
data为PageResult(records/total等)。 - 数据库未配置时返回业务码
5031,前端据此跳转初始化引导页。