Skip to content

Commit 494e9a5

Browse files
committed
feat: 添加忽略统一返回格式的注解判断逻辑
1 parent f8382d2 commit 494e9a5

3 files changed

Lines changed: 10 additions & 7 deletions

File tree

simple-common/src/main/java/top/cadecode/common/exception/SimpleExceptionHandler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,20 @@ public Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttrib
7070
// 获取请求路径
7171
int status = (int) errorAttributes.get("status");
7272
String path = (String) errorAttributes.get("path");
73-
MapBuilder<String, Object> resMapBuilder = MapUtil.create().add("path", path);
7473
// 处理 404
7574
if (status == 404) {
76-
return resMapBuilder
75+
return MapUtil.create()
7776
.add("code", ResCode.REQ_PATH_NOT_EXIST.getCode())
7877
.add("reason", ResCode.REQ_PATH_NOT_EXIST.getReason())
78+
.add("path", path)
7979
.asMap();
8080
}
8181
// 处理 405
8282
if (status == 405) {
83-
return resMapBuilder
83+
return MapUtil.create()
8484
.add("code", ResCode.REQ_METHOD_INVALID.getCode())
8585
.add("reason", ResCode.REQ_METHOD_INVALID.getReason())
86+
.add("path", path)
8687
.asMap();
8788
}
8889
return errorAttributes;

simple-common/src/main/java/top/cadecode/common/response/SimpleRes.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public static <T> SimpleRes<T> ok(T data) {
3636
ResCode success = ResCode.SUCCESS;
3737
res.setCode(success.getCode());
3838
res.setReason(success.getReason());
39+
res.setData(data);
3940
return res;
4041

4142
}

simple-common/src/main/java/top/cadecode/common/response/SimpleResAdvice.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,11 @@
55
import org.springframework.http.server.ServerHttpRequest;
66
import org.springframework.http.server.ServerHttpResponse;
77
import org.springframework.web.bind.annotation.ControllerAdvice;
8-
import org.springframework.web.bind.annotation.PostMapping;
98
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
109
import top.cadecode.common.constant.ResCode;
1110
import top.cadecode.common.exception.SimpleException;
1211
import top.cadecode.common.util.JsonUtil;
1312

14-
import java.lang.annotation.Annotation;
15-
import java.lang.reflect.AnnotatedElement;
16-
1713
/**
1814
* @author Cade Li
1915
* @date 2021/7/16
@@ -46,6 +42,11 @@ public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType
4642
// String 类型的 Body 需要返回 String 类型,否则报转换错误
4743
return JsonUtil.objToStr(SimpleRes.ok(body).path(path));
4844
}
45+
// 判断是否有忽略格式化注解,有则直接返回
46+
SimpleResIgnore resIgnore = returnType.getMethodAnnotation(SimpleResIgnore.class);
47+
if (resIgnore != null && resIgnore.value()) {
48+
return body;
49+
}
4950

5051
return SimpleRes.ok(body).path(path);
5152
}

0 commit comments

Comments
 (0)