# Web服务总览
Air.Cloud.WebApp 用于快速构建 Web API 服务。它把常见 Web 能力拆成了几块:动态 API、数据验证、友好异常、统一返回、短路状态码处理、自定义返回结构。
这份文档只按使用者最关心的顺序组织:
- 什么时候用。
- 怎么创建 Web 服务。
- 怎么配置统一返回。
- 怎么配置数据验证。
- 怎么配置异常处理。
- 哪些地方可以自定义重写。
# 应用场景
# 适合使用 WebApp 的场景
适合:
- 需要快速创建 Web API 服务。
- 需要动态 API 能力,避免手写大量 Controller。
- 需要统一处理参数验证失败。
- 需要统一处理业务异常和系统异常。
- 需要统一 API 返回结构。
- 希望前端可以稳定解析验证错误字段。
不一定适合:
- 纯 MVC 页面项目。
- 大量文件下载、重定向、HTML 页面返回的项目。
- 已经有完整自定义 Web 框架封装的已有项目。
如果只是 Web API 服务,推荐直接使用 AddWebApp()。
如果是已有项目迁移,建议先使用 AddWebAppCore(),确认路由、验证、异常都正常后,再启用统一返回。
# 能力拆分
| 入口 | 包含能力 | 说明 |
|---|---|---|
AddWebAppCore() | 动态 API、数据验证、友好异常 | Web 服务核心能力,不包装成功返回 |
AddWebAppUnifyResult() | 统一返回 | 只启用统一返回能力 |
AddWebApp() | Core + 统一返回 | 标准接入入口 |
旧入口 AddInject() 和 AddInjectWithUnifyResult() 已移除。
新代码必须使用 AddWebAppCore()、AddWebAppUnifyResult() 或 AddWebApp()。如果历史项目仍在调用旧入口,需要按下面规则直接替换:
| 已移除入口 | 替换为 |
|---|---|
AddInject() | AddWebAppCore() |
AddInjectWithUnifyResult() | AddWebApp() |
# 子级文档
- 创建 Web 服务:说明
AddWebApp()、AddWebAppCore()和拆开注册方式。 - 统一返回配置:说明默认返回结构、状态码配置和短路状态码处理中间件。
- DataValidation 数据验证:说明全局模型验证、手动验证 API 和验证失败返回结构。
- FriendlyException 友好异常:说明
Oops使用方式、业务异常、普通友好异常和错误码。 - 异常处理:说明全局异常过滤器、异常消息映射、统一返回结构和全局异常处理器。
- CORS 跨域访问:说明跨域注册、配置项、凭据规则和 Token 响应头暴露。
- 自定义重写:说明自定义统一返回 Provider、跳过统一返回和常见坑。