码迷,mamicode.com
首页 > 其他好文 > 详细

前后端分离之——接口数据返回---标准格式

时间:2018-10-08 15:57:38      阅读:1865      评论:0      收藏:0      [点我收藏+]

标签:import   obj   tco   wrap   pack   sys   span   sig   return   

开发中,如果前端和后端,在没有统一返回数据格式,我们来看一下会发生什么:

后台开发人员A,在接口返回时,习惯返回一个返回码code=0000,然后返回数据;

后台开发人员B,在接口返回时,习惯直接返回一个boolean类型的success=true,然后返回数据;

后台开发人员C,在接口返回时,习惯在接口失败时返回码为code=0000。

可以看到,上面的三个开发人员,都没有大问题,没有谁对谁错,只要给前端接口文档,前端都是可以接上接口的。但是,在项目功能越来越多,接口数量持续增长时,对开发人员而言,就是一种灾难,同一个前端,如果对接A和C,那她接接口时会很崩溃。因为返回的code,同样是0000,但是一个代表成功,一个代表失败,这时前端就会去找两个人沟通,看可不可以统一一下,但是两个人一看,最近写了几十个接口了,还和别人对接过,牵一发动全身,没法做改动了。看,这就是灾难。

所以,在项目开发中,初期搭建框架时,定好通用的接口数据返回格式,定义好全局的状态码,是非常有必要的。一个项目,甚至整个公司,遵循同一套接口返回格式规范,这样可以极大的提高进度,降低沟通成本。

下面的两个类,一个是数据返回格式,是自定义的,很简单,但是可通用,这里分享一下,返回给前端时,根据情况,直接调用此类中的方法做返回值;另一个是状态码,这个可以根据项目实际情况,自己做修改。

接口数据返回格式:

package response;
 
import domain.ReturnCode;
 
/**
 * Created by lightClouds917
 * Date 2017/11/10
 * Description:接口统一返回格式
 */
public class ResponseWrapper {
    private Integer code;//状态码
    private Boolean isSuccess;//状态
    private String massege;//消息
    private Object result;//数据对象
    
    /**
    * 无参构造器
    */
    public Result(){
    super();
    }
    
    /**
    * 只返回状态,状态码,消息
    * @param statu
    * @param code
    * @param massege
    */
    public Result(Boolean success, Integer code, String massege){
    super();
    this.isSuccess=success;
    this.code=code;
    this.massege=massege;
    }
    
    /**
    * 只返回状态,状态码,数据对象
    * @param statu
    * @param code
    * @param object
    */
    public Result(Boolean success, Integer code, Object result){
    super();
    this.isSuccess=success;
    this.code=code;
    this.result=result;
    }
    
    /**
    * 返回全部信息即状态,状态码,消息,数据对象
    * @param statu
    * @param code
    * @param massege
    * @param result
    */
    public Result(Boolean success, Integer code, String massege, Object result){
    super();
    this.isSuccess=success;
    this.code=code;
    this.massege=massege;
    this.result=result;
    }
    
    public Integer getCode() {
    return code;
    }
    
    public void setCode(Integer code) {
    this.code = code;
    }
    
    public Boolean getIsSuccess() {
    return isSuccess;
    }
    
    public void setIsSuccess(Boolean isSuccess) {
    this.isSuccess = isSuccess;
    }
    
    public String getMassege() {
    return massege;
    }
    
    public void setMassege(String massege) {
    this.massege = massege;
    }
    
    public Object getResult() {
    return result;
    }
    
    public void setResult(Object result) {
    this.result = result;
    }


}
 

 

状态码

public enum ReturnCode {

    SUCCESS(0000,"查询成功"),
    NODATA(0001,"查询成功无记录"),
    FEAILED(0002,"查询失败"),
    ACCOUNT_ERROR(1000, "账户不存在或被禁用"),
    API_NOT_EXISTS(1001, "请求的接口不存在"),
    API_NOT_PER(1002, "没有该接口的访问权限"),
    PARAMS_ERROR(1004, "参数为空或格式错误"),
    SIGN_ERROR(1005, "数据签名错误"),
    AMOUNT_NOT_QUERY(1010, "余额不够,无法进行查询"),
    API_DISABLE(1011, "查询权限已被限制"),
    UNKNOWN_IP(1099, "非法IP请求"),
    SYSTEM_ERROR(9999, "系统异常");
     
    private int code;
    private String msg;

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
 
    private ReturnCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}

 

前后端分离之——接口数据返回---标准格式

标签:import   obj   tco   wrap   pack   sys   span   sig   return   

原文地址:https://www.cnblogs.com/tanzq/p/9754510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!