Spring boot 统一返回

2022-04-21  本文已影响0人  没有怎么办

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;

    }

}

上一篇 下一篇

猜你喜欢

热点阅读