响应处理
BaseResponse
BaseResponse<E> 统一响应模型,包含 context、状态码、错误信息与数据载体
BaseResponse
BaseResponse<E> 位于 com.xlf.utility,用于统一接口返回结构。
该类使用 @JsonInclude(JsonInclude.Include.NON_NULL),字段值为 null 时默认不输出到 JSON。
类定义
package com.xlf.utility;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BaseResponse<E> implements Serializable {
private String context;
@NotNull
private String output;
@NotNull
private Integer code;
@NotNull
private String message;
private String errorMessage;
private Long duration;
private E data;
// 兼容旧版本的五参构造
public BaseResponse(String output, Integer code, String message, String errorMessage, E data) {
this(null, output, code, message, errorMessage, null, data);
}
}字段说明
字段
类型
构造方式
全参构造(推荐在工具层使用)
BaseResponse<UserDTO> response = new BaseResponse<>(
"550e8400-e29b-41d4-a716-446655440000", // context
"Success", // output
200, // code
"获取成功", // message
null, // errorMessage
12L, // duration
userDTO // data
);兼容构造(旧风格)
BaseResponse<UserDTO> response = new BaseResponse<>(
"Success",
200,
"获取成功",
null,
userDTO
);Builder 构造(复杂场景推荐)
BaseResponse<UserDTO> response = BaseResponse.<UserDTO>builder()
.context("550e8400-e29b-41d4-a716-446655440000")
.output("Success")
.code(200)
.message("获取成功")
.duration(12L)
.data(userDTO)
.build();当前实现中没有
BaseResponse(ErrorCode, ...)形式的构造函数。
响应示例
成功响应
{
"context": "550e8400-e29b-41d4-a716-446655440000",
"output": "Success",
"code": 200,
"message": "获取成功",
"duration": 12,
"data": {
"id": 1,
"username": "xiao_lfeng"
}
}错误响应
{
"context": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"output": "ParameterMissing",
"code": 40003,
"message": "参数缺失",
"errorMessage": "用户 ID 不能为空",
"duration": 3
}使用建议
- 在
bamboo-mvc或bamboo-webflux中,优先使用各模块ResultUtil统一构造响应。 - 成功响应建议
output="Success"、code=200。 - 错误响应建议从
ErrorCode读取output与code,避免硬编码。