封装对象

Client 调用 Feign 服务时,所有响应数据均以如下对象封装返回并 JSON 序列化:

  1. package nxcloud.foundation.feign.base.response;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Builder;
  4. import lombok.Data;
  5. import lombok.NoArgsConstructor;
  6. /**
  7. * @author sunshow
  8. */
  9. @Data
  10. @Builder
  11. @AllArgsConstructor
  12. @NoArgsConstructor
  13. public class R<D> {
  14. /**
  15. * 响应状态码
  16. */
  17. private int code;
  18. /**
  19. * 响应消息
  20. */
  21. private String message;
  22. /**
  23. * 响应时间
  24. */
  25. private long timestamp;
  26. /**
  27. * 响应数据
  28. */
  29. private D data;
  30. public boolean isSuccess() {
  31. return code == 0;
  32. }
  33. }

状态码约定

状态码50100以上(含50100)留给业务扩展,前三位为业务类型,后两位为业务细分状态码。

状态码类别(前三位) 状态码 说明 需要对应操作
0 操作成功
400 数据类异常状态码
40001 数据格式验证错误
40002 数据记录已存在
40003 数据记录不存在
401
40101 令牌已过期
403 权限类异常状态码
40301 没有访问权限
40302 没有数据范围权限
500 50000 未知错误 业务非预期抛出的运行时异常,需要检查出错原因
50001 运行时异常