美文网首页React-Native
001-高可用后台返回数据规范--Java

001-高可用后台返回数据规范--Java

作者: Time_情书 | 来源:发表于2017-06-05 21:48 被阅读224次

    欢迎各位同学加入群:397885169,里面大神超多,会帮助解决各种问题。

    一:
    在日常工作中,后台需要和移动端或者前端进行数据交互。你是否还在纠结如何进行数据封装?你是否还在为每一个接口写一个处理返回数据的方法?今天,就来一个符合移动规范,高可用的数据处理实体类。

    二:分析

    移动端到底需要哪些数据?

    1-:固定的返回数据类型

    2-:状态码<此状态码表示请求是成功还是失败,失败属于哪一种约定类型>

    3-:请求错误,返回错误信息

    4-:真正的数据data

    作用:1-:返回固定的数据类型,便于移动端进行相关数据处理封装。

    2-:状态码。此状态码用来表明移动端访问服务器的状态。约定,当值为0时,服务器返回“正确”的数据。其他则为“不正确,不符合约定或者预期”的数据。比如,登录接口,只有当状态码为0时,表明登录成功,为1,表明用户名已经存在,则返回状态码为1的错误信息需要放到msg字段。

    3-:请求错误。移动端分为两种。一种为服务器无法链接,网络错误。另一种错误是请求后返回的数据为“不正确,不符合约定或者预期”的数据。

    4-:当返回的状态码为0时,此时data数据就是服务器正确处理请求后需要告诉移动端的数据。

    三:Coding

    1-:ResponseCode.class
    
    public enum ResponseCode{d
    
    SUCCESS(0,"SUCCESS"),
    
    ERROR(1,"ERROR");
    
    private int code;
    
    private String msg;
    
    ResponseCode (int code,String msg){
    
    this.code=code;
    
    this.msg=msg;
    
    }
    
    public int getCode(){
    
    returncode;
    
    }
    
    public String getMsg(){
    
    return msg;
    
    }
    
    }
    
    

    2-:ServerResponse.class
    使用spring注解

    //@JsonSerialize(include =  JsonSerialize.Inclusion.NON_NULL)
    
    //保证序列化json的时候,对象的值为null时,不会返回给客户端
    
    public class  ServerResponse implements Serializable{
    
    private  int status;
    
    private String msg;
    
    private T data;
    
    private ServerResponse (int status){
    
    this.status=status;
    
    }
    
    private ServerResponse (ints  tatus, String msg){
    
    this.status=status;
    
    this.msg=msg;
    
    }
    
    private ServerResponse (int status,String  msg,T data){
    
    this.status=status;
    
    this.msg=msg;
    
    this.data=data;
    
    }
    
    private ServerResponse(int  status,T data){
    
    this.status=status;
    
    this.data=data;
    
    }
    
    @JsonIgnore
    
    //忽略,使之不在json序列化当中
    
    public boolean  isSuccess(){
    
    return this.status==ResponseCode.SUCCESS.getCode();
    
    }
    
    public int  getStatus(){
    
    return  status;
    
    }
    
    public T  getData(){
    
    return  data;
    
    }
    
    public String  getMsg(){
    
    return  msg;
    
    }
    
    public ServerResponse  createBySuccess(){
    
    return  new  ServerResponse(ResponseCode.SUCCESS.getCode());
    
    }
    
    public  ServerResponse createBySuccessMsg(String msg ){
    
    return  new 
     ServerResponse(ResponseCode.SUCCESS.getCode(),msg);
    
    }
    
    public  ServerResponse createBySuccess(T data){
    
    return  new 
       ServerResponse(ResponseCode.SUCCESS.getCode(),data);
    
    }
    
    public  ServerResponse createBySuccess(String msg , T  data){
    
    return  new 
     ServerResponse(ResponseCode.SUCCESS.getCode(), msg, data);
    
    }
    
    public  ServerResponse createByError(){
    
    return  new 
     ServerResponse(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getMsg());
    
    }
    
    public  ServerResponse createByErrorMsg(String msg){
    
    return new 
     ServerResponse(ResponseCode.ERROR.getCode(),msg);
    
    }
    
    public  ServerResponse createByError(int  code,String  msg){
    
    return  new  ServerResponse( code,msg);
    
    }
    
    }
    
    

    四:使用
    1-:访问正确时,返回前端正确的code和默认msg;

              ServerResponse  response=ServerResponse.createBySuccessMsg();
    

    2-:访问正确时,返回前端正确的code和自定义信息;

       ServerResponse  response=ServerResponse.createBySuccessMsg(”数据更新成功“);
    

    3-:访问正确时,返回前端正确的code和自定义信息以及数据;

       User user=new User();
       ServerResponse  response=ServerResponse.createBySuccess(”数据更新成功“,user);
    

    4-:访问错误时,返回前端错误的code和默认msg;

              ServerResponse  response=ServerResponse.createByError();
    

    5-:访问错误时,返回前端正确的code和自定义信息;

       ServerResponse  response=ServerResponse.createByErrorMsg(”数据更新失败“);
    

    6-:访问错误时,返回前端自定义code和自定义信息;

       ServerResponse  response=ServerResponse.createByError(,10”数据更新失败“);
    

    7-:需要判断某个返回值的code或者状态是否成功:

     boolean isSuccess=ServerResponse.isSuccess();
    

    2017-06-05;

    相关文章

      网友评论

        本文标题:001-高可用后台返回数据规范--Java

        本文链接:https://www.haomeiwen.com/subject/rfywfxtx.html