数据验证失败, 优化详细信息输出 + 优化request_id生成
This commit is contained in:
parent
86f91b4a9e
commit
327099e963
@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
import org.springframework.web.context.request.WebRequest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -45,11 +46,23 @@ public class GlobalExceptionHandler {
|
||||
// 处理参数校验异常(如@NotNull、@Size等校验失败)对应validate库
|
||||
@ExceptionHandler(MethodArgumentNotValidException.class)
|
||||
public ResponseEntity<Object> handleValidationException(MethodArgumentNotValidException ex, HttpServletRequest httpServletRequest) {
|
||||
List<Map<String, Object>> errDetailList = new ArrayList<>();
|
||||
List<String> errors = new ArrayList<>();
|
||||
ex.getBindingResult().getFieldErrors().forEach(itemErr -> errors.add(itemErr.getField() + ":" + itemErr.getDefaultMessage()));
|
||||
ex.getBindingResult().getFieldErrors().forEach(itemErr -> {
|
||||
// message 层面显示的信息
|
||||
errors.add(itemErr.getField() + ":" + itemErr.getDefaultMessage());
|
||||
// err detail信息
|
||||
Map<String, Object> detail = new HashMap<>();
|
||||
detail.put("object_name", itemErr.getObjectName());
|
||||
detail.put("field", itemErr.getField());
|
||||
detail.put("input", itemErr.getRejectedValue());
|
||||
detail.put("code", itemErr.getCode());
|
||||
detail.put("binding_failure", itemErr.isBindingFailure());
|
||||
errDetailList.add(detail);
|
||||
});
|
||||
|
||||
RuntimeContext runtimeContext = getRuntimeContext(httpServletRequest);
|
||||
Response<Object> response = new Response<>(runtimeContext).failure("400", String.join(" - ", errors), ex.getFieldErrors());
|
||||
Response<Object> response = new Response<>(runtimeContext).failure("400", String.join(" - ", errors), errDetailList);
|
||||
return getResponseEntity(response);
|
||||
}
|
||||
|
||||
|
@ -123,9 +123,9 @@ public class RequestInitFilter extends HttpFilter {
|
||||
List<String> list = new ArrayList<>();
|
||||
Instant instant = Instant.ofEpochMilli(runtimeContext.getStartTimeStamp());
|
||||
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
String formatted = zdt.format(formatter);
|
||||
list.add(runtimeContext.getServerIp()); // 服务器IP
|
||||
list.add(runtimeContext.getServerIp().replace(".", "")); // 服务器IP
|
||||
list.add(formatted); // 请求时间
|
||||
list.add(UUID.randomUUID().toString()); // 随机字符串
|
||||
String requestId = String.join("-", list); // 拼接成请求ID
|
||||
|
Loading…
x
Reference in New Issue
Block a user