3 @Validated @RequestBodyと@ExceptionHandlerは、良く校正パラメータで行うことができ、以下の具体的なデモを使用しました。
インターフェース
輸入org.springframework.validation.annotation.Validated; 輸入org.springframework.web.bind.annotation.PostMapping。 輸入org.springframework.web.bind.annotation.RequestBody。 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入com.xx.common.core.CommonResult; 輸入com.xx.product.input.dto.ProductDetailCollectParam; 輸入io.swagger.annotations.Api; 輸入io.swagger.annotations.ApiOperation; @Api(タグ= "商品详情页接口") (値= "/製品")@RequestMapping パブリックインターフェイスProductDetailService { ( "/コレクト")@PostMapping @ApiOperation(値= "收藏商品接口") 公共CommonResult collectProduct(@RequestBody @Validated ProductDetailCollectParam productDetailCollectParam)。 }
参照カテゴリへ
javax.validation.constraints.NotBlankインポート、 インポートio.swagger.annotations.ApiModel; インポートio.swagger.annotations.ApiModelProperty; インポートlombok.Data; @Data @ApiModel(値= "上院への製品詳細ページ") のパブリッククラスProductDetailCollectParam { @NotBlank(メッセージ= "ユーザーがOpenIDの空ではない") @ApiModelProperty(値= "ユーザのOpenID") プライベート文字列のOpenID、 @NotBlank(メッセージ= "アイテムIDは空にすることはできません") @ApiModelProperty(値= "商品ID" ) プライベートID列; }
グローバルキャッチ例外クラス
輸入org.springframework.web.bind.annotation.RestControllerAdvice。 輸入はjava.util.List; 輸入javax.validation.ConstraintViolationException。 輸入org.springframework.validation.BindingResult; 輸入org.springframework.validation.FieldError; 輸入org.springframework.web.bind.MethodArgumentNotValidException。 輸入org.springframework.web.bind.annotation.ExceptionHandler; 輸入com.xx.common.core.CommonResult; 輸入cn.hutool.core.util.StrUtil; 輸入lombok.extern.slf4j.Slf4j; SLF4J @ @RestControllerAdvice パブリッククラスGlobalExecptionHandler { / ** *全局异常拦截 * @param E * @return * / @ExceptionHandler(Exception.class) パブリックCommonResultハンドラ(例外例外){ StringBuilderのたerrMsg =新規のStringBuilder(); //方法参数无效异常 IF(MethodArgumentNotValidException instanceofの例外){ BindingResult bindResult =((MethodArgumentNotValidException)例外).getBindingResult(); 一覧<FieldError> fieldErrorList = bindResult.getFieldErrors(); fieldErrorList.forEach(fieldErrors - > { FieldError fieldError = fieldErrors; IF(StrUtil.isNotBlank(errMsg.toString())){ errMsg.append( ""); } errMsg.append(fieldError.getDefaultMessage())。 } ); }そうであれば(ConstraintViolationException instanceofの例外){ //约束冲突异常 } // log.error( "异常:"、例外)。 リターンCommonResult.failed(errMsg.toString()); }
参考リンク:https://www.cnblogs.com/cjyboy/p/11465876.html
参考リンク:https://blog.csdn.net/lzhcoder/article/details/98870852