• Restful API返回统一响应体 :restful api接口,返回统一响应体


    先建一个工具类如

    RestResponse.java
    package com.ibaiqi.news.sqgov.tool;
    import com.fasterxml.jackson.annotation.JsonFormat;
    import com.fasterxml.jackson.annotation.JsonInclude;
    
    import java.io.Serializable;
    import java.util.Date;
    
    /**
     *
     * @author wangyushuai@fang.com
     * @date 2018/9/26
     * REST请求响应工具类 ,在controller控制器中,做为接口返回值  return RestResponse.buildSuccess(articles);
     */
    public class RestResponse implements Serializable {
    
        private final static long serialVersionUID = 1L;
        /**
         * 成功
         */
        private final static int STATUS_SUCCESS = 200;
    
        /**
         * 代码错误
         */
        private final static int STATUS_ERROR_INTERNAL_SERVER_ERROR = 500;
    
        /**
         * 服务不可用(针对熔断&服务降级的情况)
         */
        private final static int STATUS_ERROR_SERVICE_UNAVAILIABLE = 503;
    
    
        private int status;
        //@JsonInclude(JsonInclude.Include.NON_NULL)//不为空时,返回
        private Object data;
        private String message;
    
        /**
         * 时间戳并格式化
         */
        @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",locale = "lz",timezone = "GMT+8")
        private Date timestamp;
    
        /**
         * 程序耗时
         */
        //@JsonIgnore//不返回注解
        private long time;
    
        public RestResponse(int code, String message, Object data) {
            super();
            this.status = code;
            this.message = message;
            this.data = data;
        }
    
        /**
         * 请求成功
         * @param data
         * @return
         */
        public static RestResponse buildSuccess(Object data) {
            return new RestResponse(STATUS_SUCCESS, "success", data);
        }
    
    
        /**
         * 代码错误
         * @param data
         * @return
         */
        public static RestResponse buildError_InternalServerError(Object data) {
            return new RestResponse(STATUS_ERROR_INTERNAL_SERVER_ERROR, "error", data);
        }
    
        /**
         * 返回错误码(服务不可用时,返回此方法),但推荐直接使用异常类
         * @param data
         * @return
         */
        public static RestResponse buildError_ServiceUnavailable(Object data) {
            return new RestResponse(STATUS_ERROR_SERVICE_UNAVAILIABLE, "error", data);
        }
    
    //    public static RestResponse buildError(Object data) {
    //        return new RestResponse(STATUS_SUCCESS, "success", data);
    //    }
    
        public int getStatus() {
            return status;
        }
    
        public void setStatus(int status) {
            this.status = status;
        }
    
        public Object getData() {
            return data;
        }
    
        public void setData(Object data) {
            this.data = data;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public Date getTimestamp() {
            return new Date();
        }
    
        public void setTimestamp(Date timestamp) {
            this.timestamp = timestamp;
        }
    
        public String getTime() {
            return time + "ms";
        }
    
        public void setTime(long time) {
            this.time = time;
        }
    
    }
    

     2:控制器类controller 类中方法引用

    @RestController
    @RequestMapping("/api")
    @Api("政务要闻文章Controller接口")
    @CrossOrigin(origins = "*", maxAge = 3600)
    public class ArticlesController {
        @Resource
        ArticlesService articlesService;
    
        
        /**
         * 列出Articles且带上分页信息
         *
         * @return
         */
        @GetMapping("/V1/articlesResResult/{pageSize}")
        @ResponseBody
        @ApiOperation(value = "列出文章,且带分页信息", notes = "返回Articles对象的集合")
        public RestResponse articlesResResult(
                @ApiParam(name = "pageSize", value = "输入每页显示页数", defaultValue = "3", required = true) @PathVariable Integer pageSize
        ) {
    //        Map<String, Object> map = new HashMap<>();
            PageInfo<Articles> articles = articlesService.listArticles(1, pageSize);
    //        map.put("data",articles);
    //        map.put("msg","查询所有用户及分页信息成功");
            //        return  RestResponse.buildSuccess(map);
            return RestResponse.buildSuccess(articles);
    
        }
    }
    
    做产品的程序,才是好的程序员!
  • 相关阅读:
    c字符指针与字符数组的区别
    BiLstm原理
    TensorFlow中assign函数
    TensorFlow Training 优化函数
    TensorFlow 神经网络相关函数
    TensorFlow 算术运算符
    TensorFlow函数:tf.reduce_sum
    TensorFlow函数教程:tf.nn.dropout
    TensorFlow占位符操作:tf.placeholder_with_default
    TensorFlow函数:tf.random_shuffle
  • 原文地址:https://www.cnblogs.com/asplover/p/14091228.html
Copyright © 2020-2023  润新知