搜索 K
Appearance
Appearance
任何在 Controller 中返回的对象都会被自动包装为 Result<T>,业务代码无需手工 new 包装类。
| 字段 | 类型 | 含义 |
|---|---|---|
| success | Boolean | 整体成功标志 |
| code | Integer | 业务状态码,约定 200 表示成功 |
| message | String | 给前端展示或排查用的提示文本 |
| data | T | 实际业务数据,可为 null |
成功响应的标准形态:
{
"success": true,
"code": 200,
"message": "操作成功",
"data": { "id": 1, "name": "张三" }
}失败响应的标准形态:
{
"success": false,
"code": 1003,
"message": "业务处理异常: xxx",
"data": null
}如果你在某些场景下需要自己构造 Result(例如把已有错误码集中转换),使用静态工厂方法:
| 方法 | 用途 |
|---|---|
Result.success(T data) | 成功响应,code=200,message=操作成功 |
Result.success() | 成功响应,无数据 |
Result.success(String message, T data) | 成功响应,自定义消息 |
Result.success(int code, String message, T data) | 成功响应,完整自定义 |
Result.fail(int code, String message) | 失败响应,自定义业务码 |
Result.error(String message) | 失败响应,code=500 |
Result.error(Integer code, String message) | 失败响应,自定义业务码 |
如果 Controller 方法本身就返回 Result<T>,框架检测到后会直接放行,不会再包一层:
@GetMapping("/manual")
public Result<String> manual() {
return Result.success("我自己包装好了");
}两种选择:
具体用法见 注解使用。
下列路径与媒体类型会被白名单放行,避免把 Swagger 文档或静态资源也卷进包装逻辑:
/v3/api-docs、/swagger-ui 系列、/knife4j、/webjars/、/swagger-resources 前缀/swagger-ui.html、/doc.html、/favicon.ico 精确路径/assets/、/static/、/public/ 静态资源前缀text/html、text/css、application/javascript 媒体类型实现细节与扩展方式见 设计文档 · 响应拦截器。