docs: document api migration template
This commit is contained in:
29
README.md
29
README.md
@@ -88,6 +88,8 @@ Tiku.Infrastructure/Persistence/Migrations/20260725220742_InitialSchema.cs
|
||||
- 当前租户成员
|
||||
- 租户管理员
|
||||
- 第一批认证/租户接口已经建立:
|
||||
- `GET /api/tenant/resolve`
|
||||
- `GET /api/tenant/current-public`
|
||||
- `POST /api/auth/login/password`
|
||||
- `POST /api/auth/login/sms`
|
||||
- `POST /api/auth/oauth/wechat`
|
||||
@@ -96,6 +98,7 @@ Tiku.Infrastructure/Persistence/Migrations/20260725220742_InitialSchema.cs
|
||||
- `POST /api/auth/logout`
|
||||
- `GET /api/me`
|
||||
- `GET /api/tenants/current`
|
||||
- `GET /api/health`
|
||||
- 多租户数据表普遍包含 `TenantId`。
|
||||
- 大量租户内关系使用 composite FK,避免只靠应用代码约定租户一致性。
|
||||
- 不迁移 Supabase RLS、`app_private` schema、生产保护 policy。
|
||||
@@ -122,6 +125,9 @@ Tiku.Infrastructure/Persistence/Migrations/20260725220742_InitialSchema.cs
|
||||
- 租户关系 composite FK
|
||||
- PB raw record 可追踪主键
|
||||
- API / Auth 测试覆盖:
|
||||
- 租户按 `tenantCode` / `host` 解析
|
||||
- 公开品牌、主题、功能开关和 public config 返回
|
||||
- health smoke test
|
||||
- 未登录返回 401
|
||||
- 无权限返回 403
|
||||
- 密码登录成功/失败
|
||||
@@ -169,10 +175,33 @@ dotnet ef migrations script \
|
||||
--startup-project Tiku.DbMigrator
|
||||
```
|
||||
|
||||
## API 迁移模板
|
||||
|
||||
后续从旧 Nest/Supabase 迁移 API 时,优先按当前认证和租户接口的模板推进:
|
||||
|
||||
1. DTO 放到 `Tiku.Api/Contracts`,只包含 HTTP 输入输出形状、校验属性和 OpenAPI 描述。
|
||||
2. Controller 保持轻量,只做路由、授权、DTO 到 Application request 的映射。
|
||||
3. 业务流程放到 `Tiku.Application`,EF/外部服务实现放到 `Tiku.Infrastructure`。
|
||||
4. 已登录业务接口默认从 `ICurrentTenant` / `ICurrentUser` 取上下文,不直接信任 body 里的 `tenantId`。
|
||||
5. 公开接口只返回 branding、feature flags、public config 等可暴露字段,不泄露 secret/refund/payment/internal metadata。
|
||||
6. 每迁一个小闭环就补集成测试和 Scalar/OpenAPI 描述,测试通过后单独提交。
|
||||
|
||||
建议下一批迁移顺序:
|
||||
|
||||
```text
|
||||
Catalog 基础只读 API
|
||||
-> 地区 / 模块 / 学校 / 专业 / 科目 / 分类
|
||||
Content Navigation 只读 API
|
||||
-> 内容入口 / 内容树 / 题集 / 练习蓝图
|
||||
Question Bank 只读 API
|
||||
-> 题库列表 / 题目详情 / 题目版本
|
||||
```
|
||||
|
||||
## 当前状态
|
||||
|
||||
- 数据库模型迁移已完成到初始 schema。
|
||||
- migration 已整理为单个初始建库 migration。
|
||||
- API 安全底座已建立:JWT、Session、本地登录、当前用户、当前租户、基础授权策略。
|
||||
- 租户公开入口已建立:tenant resolve、public config、health。
|
||||
- 当前模型测试、认证服务测试、API 认证/租户闭环测试通过。
|
||||
- 下一步重点是继续把题库、内容、导入、订单等业务 API 接入这套安全轨道,而不是重新散写权限判断。
|
||||
|
||||
Reference in New Issue
Block a user