首页 > 其他分享 >统一接口响应协议和响应工具类封装

统一接口响应协议和响应工具类封装

时间:2023-01-10 12:55:30浏览次数:37  
标签:code return JsonData 响应 private 接口 msg 封装 public

统一业务状态码 BizCodeEnum开发

  • 状态码定义约束,共6位数,前三位代表服务,后3位代表接口
  • 比如 商品服务210,购物车是220、用户服务230,403代表权限
/**
 *
 * @Description 状态码定义约束,共6位数,前三位代表服务,后4位代表接口
 *  比如 商品服务210,购物车是220、用户服务230,403代表权限
 **/
public enum  BizCodeEnum {

    /**
     * 通用操作码
     */
    OPS_REPEAT(110001,"重复操作"),

    /**
     *验证码
     */
    CODE_TO_ERROR(240001,"接收号码不合规"),
    CODE_LIMITED(240002,"验证码发送过快"),
    CODE_ERROR(240003,"验证码错误"),
    CODE_CAPTCHA(240101,"图形验证码错误"),

    /**
     * 账号
     */
    ACCOUNT_REPEAT(250001,"账号已经存在"),
    ACCOUNT_UNREGISTER(250002,"账号不存在"),
    ACCOUNT_PWD_ERROR(250003,"账号或者密码错误");

    @Getter
    private int code;

    @Getter
    private String message;

    private BizCodeEnum(int code,String message) {
        this.code = code;
        this.message = message;
    }
}

接口统一协议 JsonData工具类开发

@Data
@AllArgsConstructor
@NoArgsConstructor
public class JsonData {

    /**
     * 状态码 0 表示成功,1表示处理中,-1表示失败
     */

    private Integer code;
    /**
     * 数据
     */
    private Object data;
    /**
     * 描述
     */
    private String msg;


    /**
     * 成功,传入数据
     * @return
     */
    public static JsonData buildSuccess() {
        return new JsonData(0, null, null);
    }

    /**
     *  成功,传入数据
     * @param data
     * @return
     */
    public static JsonData buildSuccess(Object data) {
        return new JsonData(0, data, null);
    }

    /**
     * 失败,传入描述信息
     * @param msg
     * @return
     */
    public static JsonData buildError(String msg) {
        return new JsonData(-1, null, msg);
    }

   
    /**
     * 自定义状态码和错误信息
     * @param code
     * @param msg
     * @return
     */
    public static JsonData buildCodeAndMsg(int code, String msg) {
        return new JsonData(code, null, msg);
    }

    /**
     * 传入枚举,返回信息
     * @param codeEnum
     * @return
     */
    public static JsonData buildResult(BizCodeEnum codeEnum){
        return JsonData.buildCodeAndMsg(codeEnum.getCode(),codeEnum.getMessage());
    }
}

使用

改造 Controller 层

@GetMapping("/find/{address_id}")
public JsonData detail(@PathVariable("address_id")Long addressId){
	AddressDO addressDO = addressService.detail(addressId);
	return JsonData.buildSuccess(addressDO);
}

标签:code,return,JsonData,响应,private,接口,msg,封装,public
From: https://www.cnblogs.com/xiaoyangabc/p/17039830.html

相关文章