栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用ResponseEntity统一返回数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用ResponseEntity统一返回数据

使用ResponseEntity统一返回状态码和数据

它是Spring提供的一个类,它内部封装了状态码,请求头,请求体等信息,可以根据自己的需要去设置状态码、请求体的信息。ResponseEntity中的泛型用于指定请求体的类型,并且ResponseEntity的优先级要高于@ResponseBody,如果返回值是ResponseEntity,即使存在ResponseBody或者@RestController注解,也默认不会生效,而是使用ResponseEntity

package com.sykj.why.handler;

import com.sykj.why.mongo.enums.exception.ResultEnum;
import com.sykj.why.util.baseTools;
import com.sykj.why.util.Page;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.MultiValueMap;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class Response {
    private final static String MESSAGE = "message";//消息
    private final static String CODE = "code";//响应码

    private Response() {

    }
	//HttpStatus:这是Spring提供的一个枚举类,其遵循RESTful风格封装了大量了响应状态码。详见org.springframework.http.HttpStatus;
    private static ResponseEntity getEntity(Object body, HttpStatus statusCode) {
        //一次获取所有Header,如果 Header中有多个参数,可以使用 MultiValueMap来接收参数值。
        //MultiValueMap继承以Map,是一个可以让key拥有多个value的
        MultiValueMap headers = new HttpHeaders();
        List contentType = new ArrayList();
        contentType.add("application/json;charset=utf-8");
        headers.put("Content-Type", contentType);
        return new ResponseEntity(body, headers, statusCode);
    }


    
    public static ResponseEntity success() {
        Map result = new HashMap();
        return getEntity(result, HttpStatus.OK);
    }

    
    public static ResponseEntity success(String msg) {
        Map vo = new HashMap<>();
        vo.put("sucFlag", true);
        vo.put("message", msg);
        vo.put("code", ResultEnum.SUCCESS.getCode());
        return getEntity(vo, HttpStatus.OK);
    }


    public static ResponseEntity success(String msg, Object object) {
        Map vo = new HashMap<>();
        vo.put("sucFlag", true);
        vo.put("message", msg);
        vo.put("code", ResultEnum.SUCCESS.getCode());
        vo.put("data", object);
        return getEntity(vo, HttpStatus.OK);
    }
    
    
    public static ResponseEntity success(String msg, Page page) {
        Map vo = new HashMap<>();
        vo.put("sucFlag", true);
        vo.put("message", msg);
        vo.put("totalCount", page.getTotalCount());
        vo.put("pageSize", page.getTotalPageCount());
        vo.put("code", ResultEnum.SUCCESS.getCode());
        vo.put("data", page.getResult());
        return getEntity(vo, HttpStatus.OK);
    }


    
    public static ResponseEntity success(Object object) {
        return getEntity(object, HttpStatus.OK);
    }


    
    public static ResponseEntity serverError(String msg, Integer code) {
        Map vo = new HashMap<>();
        vo.put("sucFlag", false);
        vo.put("message", msg);
        vo.put("code", code);
//        return getEntity(vo, HttpStatus.INTERNAL_SERVER_ERROR);
        return getEntity(vo, HttpStatus.OK);
    }
}


转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号