美文网首页
API结构格式封装

API结构格式封装

作者: liangxifeng833 | 来源:发表于2019-04-14 17:50 被阅读0次

    一直想整理和总结rest风格的返回格式, 终于有时间整理了, 现整理如下, 仅供个人记录, 勿喷.

    一.封装ApiResponse类

    package com.soufang.esproject.base;
    
    /**
     * API格式封装
     * Created by liangxifeng 2019-04-14.
     */
    public class ApiResponse {
        private int code;
        private String message;
        private Object data;
        private boolean more;
    
        public ApiResponse(int code, String message, Object data) {
            this.code = code;
            this.message = message;
            this.data = data;
        }
    
        public ApiResponse() {
            this.code = Status.SUCCESS.getCode();
            this.message = Status.SUCCESS.getStandardMessage();
        }
    
        public int getCode() {
            return code;
        }
    
        public void setCode(int code) {
            this.code = code;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public Object getData() {
            return data;
        }
    
        public void setData(Object data) {
            this.data = data;
        }
    
        public boolean isMore() {
            return more;
        }
    
        public void setMore(boolean more) {
            this.more = more;
        }
    
        public static ApiResponse ofMessage(int code, String message) {
            return new ApiResponse(code, message, null);
        }
    
        public static ApiResponse ofSuccess(Object data) {
            return new ApiResponse(Status.SUCCESS.getCode(), Status.SUCCESS.getStandardMessage(), data);
        }
    
        public static ApiResponse ofStatus(Status status) {
            return new ApiResponse(status.getCode(), status.getStandardMessage(), null);
        }
    
        public enum Status {
            SUCCESS(200, "OK"),
            BAD_REQUEST(400, "Bad Request"),
            NOT_FOUND(404, "Not Found"),
            INTERNAL_SERVER_ERROR(500, "Unknown Internal Error"),
            NOT_VALID_PARAM(40005, "Not valid Params"),
            NOT_SUPPORTED_OPERATION(40006, "Operation not supported"),
            NOT_LOGIN(50000, "Not Login");
    
            private int code;
            private String standardMessage;
    
            Status(int code, String standardMessage) {
                this.code = code;
                this.standardMessage = standardMessage;
            }
    
            public int getCode() {
                return code;
            }
    
            public void setCode(int code) {
                this.code = code;
            }
    
            public String getStandardMessage() {
                return standardMessage;
            }
    
            public void setStandardMessage(String standardMessage) {
                this.standardMessage = standardMessage;
            }
        }
    }
    

    二. 在Controller中调用

    @Controller
    public class HomeController {
        @GetMapping("get")
        @ResponseBody
        public ApiResponse get()
        {
            //return new ApiResponse(11,"dafdsa",null);
            return ApiResponse.ofMessage(2,"数据库未查询到任何记录");
            //return ApiResponse.ofStatus(ApiResponse.Status.BAD_REQUEST);
            //return ApiResponse.ofMessage(101010,"hahahah");
        }
    }
    

    相关文章

      网友评论

          本文标题:API结构格式封装

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