# server-rs 工作区说明 更新时间:`2026-05-15` `server-rs/` 是当前唯一后端工作区,承载 Rust `api-server`、SpacetimeDB module、领域模块、平台副作用适配和共享契约。旧 `server-node`、Express、PostgreSQL、Go 服务端和 `maincloud` 口径均为历史残留,不再作为当前实现目标。 ## 当前职责 - `crates/api-server`:Axum HTTP / SSE / BFF 门面、鉴权、中间件、外部服务编排和 DTO 映射。 - `crates/spacetime-module`:SpacetimeDB 表、reducer、procedure、事务 adapter、row mapper 和迁移。 - `crates/spacetime-client`:后端访问 SpacetimeDB 的 typed facade。 - `crates/module-*`:领域模型、命令、应用规则、领域事件和领域错误。 - `crates/platform-*`:OSS、LLM、语音、认证等外部平台能力。 - `crates/shared-contracts`:前后端共享 DTO 与公开契约。 - `crates/shared-kernel`、`crates/shared-logging`、`crates/tests-support`:跨模块基础能力、日志和测试支撑。 ## 开发规则 1. `server-rs/Cargo.toml` 是 workspace 成员和依赖版本事实源;第三方依赖和 workspace 内 crate path 优先放在 `[workspace.dependencies]`。 2. `module-*` 不直接依赖 Axum、SpacetimeDB table/reducer/procedure、`reqwest`、OSS、LLM、`spacetime-client`、`tokio` 或文件系统。 3. `api-server` 不承接领域真相;发现领域规则时优先沉到对应 `module-*`。 4. SpacetimeDB schema 变化必须同步 `spacetime-module/src/migration.rs`、生成绑定和当前后端架构文档的表目录。 5. 人工命令、本地联调和文档示例不要使用 `spacetime --root-dir`。 ## 常用命令 ```bash cargo check -p api-server --manifest-path server-rs/Cargo.toml cargo test -p api-server --manifest-path server-rs/Cargo.toml npm run check:server-rs-ddd npm run check:spacetime-schema npm run spacetime:generate npm run api-server ``` 涉及 API smoke 时用 `npm run api-server` 启动后端并检查 `/healthz`,不要使用旧 `api-server:maincloud`。 ## 当前文档 - [../docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md](../docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md):DDD 边界、API 分组、schema 变更规则和表目录。 - [../docs/【开发运维】本地开发验证与生产运维-2026-05-15.md](../docs/【开发运维】本地开发验证与生产运维-2026-05-15.md):本地启动、检查、SpacetimeDB 操作和生产运维。