feat(REQ-2516): 异常信息通过新的字段进行响应

This commit is contained in:
wangli 2024-07-01 16:18:40 +08:00
parent 48225b1bd8
commit d3b36b08bf
2 changed files with 12 additions and 4 deletions

View File

@ -9,9 +9,7 @@ import cn.axzo.framework.domain.web.code.BaseCode;
import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.framework.domain.web.result.Result; import cn.axzo.framework.domain.web.result.Result;
import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.InvalidFormatException; import com.fasterxml.jackson.databind.exc.InvalidFormatException;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.Data; import lombok.Data;
@ -302,7 +300,7 @@ public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
ApiResult<Object> err = err(512, "discovery server internal error"); ApiResult<Object> err = err(512, "discovery server internal error");
Map<String, ExceptionWrapper> recordExceptionMap = new HashMap<>(); Map<String, ExceptionWrapper> recordExceptionMap = new HashMap<>();
recordExceptionMap.put(StringUtils.hasText(applicationName) ? applicationName : "not applicationName found", rebuildThrowable(e, request)); recordExceptionMap.put(StringUtils.hasText(applicationName) ? applicationName : "not applicationName found", rebuildThrowable(e, request));
err.setData(recordExceptionMap); err.getAnalysis().putAll(recordExceptionMap);
return err; return err;
} }

View File

@ -25,7 +25,7 @@ import static jodd.util.StringUtil.isNotBlank;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@JsonPropertyOrder({"code", "msg", "data"}) @JsonPropertyOrder({"code", "msg", "data", "analysis"})
public abstract class ApiCoreResult<E> implements Result { public abstract class ApiCoreResult<E> implements Result {
@ApiModelProperty(value = "业务码", required = true, position = 1) @ApiModelProperty(value = "业务码", required = true, position = 1)
@ -37,6 +37,15 @@ public abstract class ApiCoreResult<E> implements Result {
@ApiModelProperty(value = "业务数据", position = 100) @ApiModelProperty(value = "业务数据", position = 100)
protected E data; protected E data;
@ApiModelProperty(value = "异常记录信息", position = 101)
protected Map<String, Object> analysis = new HashMap<>();
protected ApiCoreResult(Integer code, String msg, E data) {
this.code = code;
this.msg = msg;
this.data = data;
}
@Transient @Transient
protected IRespCode[] getOKCodes() { protected IRespCode[] getOKCodes() {
return new IRespCode[]{BaseCode.SUCCESS}; return new IRespCode[]{BaseCode.SUCCESS};
@ -78,6 +87,7 @@ public abstract class ApiCoreResult<E> implements Result {
map.put("code", code); map.put("code", code);
map.put("msg", msg); map.put("msg", msg);
map.put("data", data); map.put("data", data);
map.put("analysis", analysis);
return map; return map;
} }