For the complete documentation index, see llms.txt. This page is also available as Markdown.

控制器

控制器负责处理应用中的 HTTP 和 WebSocket 请求。它们作为外部请求的入口点,并充当传输层与业务逻辑之间的桥梁。

目的

控制器只能执行以下特定任务:

  1. 验证传输层输入 - 验证身份认证、授权和输入格式

  2. 调用逻辑组件 - 将业务逻辑委托给相应的逻辑组件

  3. 转换输入 - 将请求数据转换为逻辑组件调用所需的参数

  4. 处理错误 - 捕获并正确响应来自逻辑组件的错误

位置

所有控制器都必须放在 /src/controllers 目录下,并以它们执行的操作命名。

src/
└── controllers/
    ├── users/
    │   ├── get-user.ts
    │   ├── create-user.ts
    │   └── update-user.ts
    ├── content/
    │   ├── publish-content.ts
    │   └── delete-content.ts
    └── health.ts

控制器结构

基础 HTTP 处理器

POST 请求处理器

查询参数处理器

输入要求

通过控制器接收的所有输入键(JSON 正文、查询参数、URL 参数、请求头等) 必须使用小写 以避免处理数据时出现大小写问题。

多词参数

多词参数必须使用以下方式定义: snake_case.

示例

错误处理

标准错误响应

控制器应返回一致的错误响应格式:

错误映射

将领域错误映射到相应的 HTTP 状态码:

身份认证与授权

身份认证检查

授权检查

最佳实践

1. 保持控制器精简

控制器应只是逻辑组件的轻量包装:

2. 尽早验证

尽早验证并快速失败:

3. 使用类型安全

利用 TypeScript 实现类型安全:

4. 适当记录日志

记录重要事件和错误:

测试控制器

请参阅 测试服务(WKC) 用于集成测试指导的文档。

最后更新于