Skip to content

refactor(application-rs): 错误码重构、metrics 可观测性、Salvo 0.95 升级与依赖现代化 - #151

Merged
yansongda merged 6 commits into
mainfrom
refactor
Aug 9, 2026
Merged

refactor(application-rs): 错误码重构、metrics 可观测性、Salvo 0.95 升级与依赖现代化#151
yansongda merged 6 commits into
mainfrom
refactor

Conversation

@yansongda

@yansongda yansongda commented Aug 9, 2026

Copy link
Copy Markdown
Owner

概述

本次重构聚焦后端可观测性、错误处理现代化与依赖升级,共 6 个提交,涉及 43 个文件(+2437 / -1560)。

主要变更

1. 错误处理重构(5aebd68)

  • Error 枚举重构为 CopyErrorCode,按 1000/2000/9800/9900 分段
  • 全 crate 适配 Error -> ErrorCode 调用点

2. Metrics 可观测性层(5aebd68)

  • application-kernel 新增 events / prometheus / listeners::metrics 模块
  • logger 支持 HumanReadableFilterMetricsLayertruncate_for_log 改为字节级截断
  • application-util/http 接入 OUTBOUND_HTTP_REQUEST metrics,按 timeout/connect/request 分类错误标签
  • 连接池增加 keepalive 与 idle 配置

3. Middleware 优化(5aebd68)

  • 抽出 read_body_for_log
  • 响应 body 回填改为 Bytes 原始字节(替代 from_utf8_lossy String),避免非 UTF-8 字节被替换

4. 配置结构调整(5aebd68)

  • [bin.api] 改为 [bin-api] 并启用 deny_unknown_fields

5. 依赖管理现代化(715f987)

  • 移除 5 个 Cargo.toml 中 20 处 ~ 前缀,采用 cargo 默认 caret 语义
  • 同步 cargo update 拉取兼容的 minor 升级

6. Token 生成迁移(5c36c0)

  • access_token / refresh_tokenUuid::now_v7() 迁移到 Ulid::generate()
  • 生成 26 字符 Crockford Base32 时间排序字符串
  • 旧 UUID token 自然过期,前端零改动,平滑过渡

7. Salvo 升级与适配(5f45485, ca85fa1

  • 升级 Salvo 版本与 Rust 工具链
  • 适配 Salvo 0.95 的 typed depot API

兼容性

  • 无破坏性 DDL 变更(数据库 varchar(128) 列宽充足)
  • Token 格式变更通过自然过期平滑过渡
  • 配置文件需同步更新([bin.api] -> [bin-api]

验证

  • cargo check --all-features
  • cargo fmt --all -- --check
  • cargo clippy -- -D warnings

- kernel: Error 枚举重构为 Copy 的 ErrorCode(按 1000/2000/9800/9900 分段),
  新增 events / prometheus / listeners::metrics 模块,logger 支持 HumanReadableFilter
  与 MetricsLayer,truncate_for_log 改为字节级截断
- config: [bin.api] 改为 [bin-api] 并启用 deny_unknown_fields
- util/http: 接入 OUTBOUND_HTTP_REQUEST metrics,按 timeout/connect/request 分类
  错误标签,连接池增加 keepalive 与 idle 配置
- api/middleware: 抽出 read_body_for_log,响应 body 回填改为 Bytes 原始字节
  (替代 from_utf8_lossy String),避免非 UTF-8 字节被替换
- 全 crate 适配 Error -> ErrorCode 调用点
- 移除 5 个 Cargo.toml 中 20 处 version 字段的 ~ 前缀,采用 cargo 默认的 caret 语义("x.y.z" 等价于 "^x.y.z")
- 同步执行 cargo update 拉取兼容的 minor 升级(如 tokio 1.52.1->1.53.1、reqwest 0.13.3->0.13.4 等)
- 更新根 AGENTS.md 的 UNIQUE STYLES 描述,反映约束方式变更
将 access_token / refresh_token 的生成方式从 Uuid::now_v7() 迁移到
Ulid::generate(),生成 26 字符 Crockford Base32 时间排序字符串。

- workspace Cargo.toml 新增 ulid = { version = "3.0.0" } 工作区依赖
- application-database 移除 uuid 依赖,改用 ulid.workspace
- application-api 同步调整依赖分组顺序
- 数据库 varchar(128) 列宽充足,无需 DDL 迁移
- 旧 UUID token 自然过期,前端零改动,平滑过渡
@yansongda
yansongda merged commit 34bbec3 into main Aug 9, 2026
5 checks passed
@yansongda
yansongda deleted the refactor branch August 9, 2026 13:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant