カスタム統一応答処理エンティティ

2259 ワード

springには結果応答の対象がありますが、場合によっては応答結果のエンティティをカスタマイズする必要がありますので、ここに自分で応答エンティティを作成するプロセスを記録します.
/**
 * @Description:      ,  HTTP      
 * @author
 * @date 2018/4/19 09:42
 */
public enum RetCode {
 
   //   
   SUCCESS(200),
 
   //   
   FAIL(400),
 
   //    (    )
   UNAUTHORIZED(401),
 
   //      
   NOT_FOUND(404),
 
   //        
   INTERNAL_SERVER_ERROR(500);
 
   public int code;
 
   RetCode(int code) {
      this.code = code;
   }
}
public class RetResult {
 
   public int code;
 
   private String msg;
 
   private T data;
 
   public RetResult setCode(RetCode retCode) {
      this.code = retCode.code;
      return this;
   }
 
   public int getCode() {
      return code;
   }
 
   public RetResult setCode(int code) {
      this.code = code;
      return this;
   }
 
   public String getMsg() {
      return msg;
   }
 
   public RetResult setMsg(String msg) {
      this.msg = msg;
      return this;
   }
 
   public T getData() {
      return data;
   }
 
   public RetResult setData(T data) {
      this.data = data;
      return this;
   }
 
}
public class RetResponse {
 
   private final static String SUCCESS = "success";
 
   public static  RetResult makeOKRsp() {
      return new RetResult().setCode(RetCode.SUCCESS).setMsg(SUCCESS);
   }
 
   public static  RetResult makeOKRsp(T data) {
      return new RetResult().setCode(RetCode.SUCCESS).setMsg(SUCCESS).setData(data);
   }
 
   public static  RetResult makeErrRsp(String message) {
      return new RetResult().setCode(RetCode.FAIL).setMsg(SUCCESS);
   }
 
   public static  RetResult makeRsp(int code, String msg) {
      return new RetResult().setCode(code).setMsg(msg);
   }
    
   public static  RetResult makeRsp(int code, String msg, T data) {
      return new RetResult().setCode(code).setMsg(msg).setData(data);
   }
}
@RequestMapping("/selectById")
public RetResult selectById(Integer id){
    UserInfo userInfo = userInfoService.selectById(id);
    return RetResponse.makeOKRsp(userInfo);
}