Platform 能力与 API 索引
Platform 的能力多于待办、短链接和节假日三类。本页按 FreeKit.Platform.HttpApi 的真实 Controller 盘点当前 HTTP 边界,帮助开发者定位代码;具体请求/响应契约仍以主 Host 的 plat / v1 Swagger 分组为准。
项目边界
src/Services/Platform/
├── FreeKit.Platform/ # 核心服务、实体、配置、外部客户端
└── FreeKit.Platform.HttpApi/ # Controller 与 HTTP 接入
PlatformModuleStartup 注册核心能力;PlatformHttpApiModuleStartup 让主 Host 发现 HttpApi 程序集。参见Platform 架构设计。
业务与平台能力
| 能力 | 主要路由 | 关键类型/目录 |
|---|---|---|
| 行政区划 | /api/plat/area | Application/Areas、IAreaService |
| 热榜聚合 | /api/dailyhot | Application/DailyHot、keyed IDailyHotService |
| IP 查询 | /api/plat/ip-address | Application/Ip、IIpAddressService |
| 链接历史 | /api/plat/link | Application/LinkHistories |
| 本地化文化 | /api/plat/culture | Application/Localizations、ICultureService |
| 本地化资源 | /api/plat/resource | Application/Localizations、IResourceService |
| 消息中心 | /api/plat/messages | Application/Messages、IPlatformMessageService |
| 导航分类 | /api/plat/catalog | Application/Nav/Catalogs、ICatalogService |
| 导航项 | /api/plat/navitem | Application/Nav/NavItems、INavItemService |
| 导航管理 | /api/plat/admin/navitem | NavItemAdminController |
| 拼音转换 | /api/plat/pinyin | Application/Pinyin、IPinyinService |
| 开发项目目录 | /api/plat/dev-projects | Application/Projects、IDevProjectService |
| 开发者与社交资料 | /api/plat/dev-users、/api/plat/dev-user-socials | Application/Projects |
| 保险箱 | /api/plat/safeboxes | Application/SafeBoxes |
| Soul 内容 | /api/plat/soul | Application/Souls |
| 调度信息 | /api/plat/FreeScheduler | Application/TaskInfos/FreeSchedulerController |
| 文本转语音 | /api/plat/tts | Application/TTS、ITTSService、IMimoTtsClient |
| 元信息/监控 | /api/plat/meta、/api/plat/monitor | Application/v1/Controllers |
独立子域
| 子域 | 主要路由 | 独立设计点 |
|---|---|---|
| Holiday | /api/plat/holiday | 外部节假日同步、本地表与缓存 |
| ShortUrl | /api/plat/short-urls | ShortUrlConnectionStrings 独立 FreeSql 实例与分表 |
| ToDo | /api/plat/todo | 个人待办、排序、完成状态和调度提醒 |
通用工具路由
Platform HttpApi 还承载少量 v1 工具端点,它们不使用 /api/plat 前缀:
| 控制器 | 路由 | Swagger 分组 |
|---|---|---|
ClassicCryptoController | /api/v1/classic-crypto | v1 |
JSONController | /api/v1/JSON | v1 |
SMController | /api/v1/sm | v1 |
不要根据模块名推断所有 Platform 路由。新增端点时优先沿用 api/plat/... 和 plat 分组;兼容旧工具路由时应在 API 契约中明确说明。
认证与权限
部分 Controller 继承 FreeKitController,因此类级默认需要认证;另一些历史 Controller 直接继承 KitApiControllerBase,认证由类或 Action 上的 [Authorize] / [AllowAnonymous] 决定。调用方必须以具体 Action 的 Swagger 和源码特性为准,不能把整个 Platform 假设成全匿名或全鉴权。
新增管理能力时:
- 使用
FreeKitController作为默认基类; - 在 Contracts 中定义权限常量;
- Controller 保持薄转发,资源范围和权限判断放到 Application Service;
- 新的异步业务方法使用
Async后缀; - 外部 HTTP 客户端通过
AddHttpClient和 Polly resilience 管线注册。
注册与配置入口
- 核心注册:
src/Services/Platform/FreeKit.Platform/PlatformModuleStartup.cs - HTTP 注册:
src/Services/Platform/FreeKit.Platform.HttpApi/PlatformHttpApiModuleStartup.cs - 主 Host 组合:
src/Services/Host/FreeKit.Host/Program.cs - 后台模块映射:
src/Services/Host/FreeKit.DI/E.cs