Spring boot 统一返回

package com.ku.config;

import com.fasterxml.jackson.core.JsonProcessingException;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.ku.core.common.api.Result;

import org.springframework.core.MethodParameter;

import org.springframework.http.MediaType;

import org.springframework.http.server.ServerHttpRequest;

import org.springframework.http.server.ServerHttpResponse;

import org.springframework.web.bind.annotation.RestControllerAdvice;

import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;

import java.util.LinkedHashMap;

@RestControllerAdvice

public class CommonResponseAdvice implements ResponseBodyAdvice {

    @Override

    public boolean supports(MethodParameter returnType, Class converterType) {

        return true;

    }

    @Override

    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {

        if (body instanceof LinkedHashMap) {

            LinkedHashMap map = (LinkedHashMap) body;

            if (map.get("status") != null) {

                int status = (int) map.get("status");

                if (404 == status) return Result.fail("404找不到页面");

            }

        }

        if (body instanceof String) {

            try {

                return new ObjectMapper().writeValueAsString(Result.data(body));

            } catch (JsonProcessingException e) {

                e.printStackTrace();

            }

        }

        if (body instanceof Result) {

            return body;

        }

        return  body;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容