zoukankan      html  css  js  c++  java
  • 前后端分离之——接口数据返回---标准格式

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

    后台开发人员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;
        }
    }
  • 相关阅读:
    (转贴)Visual Studio2005 + Visual SourceSafe 2005 实现团队开发、源代码管理、版本控制
    vss2003的资料说明,转贴自MSDN
    非常经典的网络蜘蛛示例,我是转载在这里的
    Vsi的路径所在
    (转)三种模拟自动登录和提交POST信息的实现方法
    (转)关于网络蜘蛛的知识
    (转)thin的制作DataGrid的HTC,转来自己用做开发
    转帖:麻雀虽小,五脏俱全-C# 创建windows服务、socket通讯实例
    Google Maps API编程资源大全
    C#实现的根据年月日计算星期几的函数(转)
  • 原文地址:https://www.cnblogs.com/tanzq/p/9754510.html
Copyright © 2011-2022 走看看