封装对象
Client 调用 Feign 服务时,所有响应数据均以如下对象封装返回并 JSON 序列化:
package nxcloud.foundation.feign.base.response;import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor;/*** @author sunshow*/@Data@Builder@AllArgsConstructor@NoArgsConstructorpublic class R<D> {/*** 响应状态码*/private int code;/*** 响应消息*/private String message;/*** 响应时间*/private long timestamp;/*** 响应数据*/private D data;public boolean isSuccess() {return code == 0;}}
状态码约定
状态码50100以上(含50100)留给业务扩展,前三位为业务类型,后两位为业务细分状态码。
| 状态码类别(前三位) | 状态码 | 说明 | 需要对应操作 |
|---|---|---|---|
| 0 | 操作成功 | ||
| 400 | 数据类异常状态码 | ||
| 40001 | 数据格式验证错误 | ||
| 40002 | 数据记录已存在 | ||
| 40003 | 数据记录不存在 | ||
| 401 | |||
| 40101 | 令牌已过期 | ||
| 403 | 权限类异常状态码 | ||
| 40301 | 没有访问权限 | ||
| 40302 | 没有数据范围权限 | ||
| 500 | 50000 | 未知错误 | 业务非预期抛出的运行时异常,需要检查出错原因 |
| 50001 | 运行时异常 |
