常见的问题系列---【@ApiOperationSupport忽略失效的问题】
1.问题
knife4j提供了一个@ApiOperationSupport(ignoreParameters = {"sysDict.id,sysDict.status"})注解,可以在新增时忽略掉一些无关的字段。可是我在用的时候,犯了一个低级错误,排查了半天。
2.问题复现
错误代码:
@ApiOperation(value = "添加") @ApiOperationSupport(ignoreParameters = {"sysDict.id,sysDict.status"}) @PostMapping("/add") public R<Boolean> insert(@RequestBody SysDict sysDict) { return success(this.sysDictService.save(sysDict)); }
正确代码:注意紫色部分,一定是一个字段一对引号。
@ApiOperation(value = "添加") @ApiOperationSupport(ignoreParameters = {"sysDict.id","sysDict.status"}) @PostMapping("/add") public R<Boolean> insert(@RequestBody SysDict sysDict) { return success(this.sysDictService.save(sysDict)); }
扩展:
1. 一级参数
@ApiOperation(value = "新增Model接口1") @ApiOperationSupport(ignoreParameters = {"id","orderDate.id"}) @PostMapping("/insertMode1l") public Rest<UptModel> insertModel1(UptModel uptModel){ Rest<UptModel> r =new Rest<>(); r.setData(uptModel); return r; }
UptModel.java
public class UptModel { @ApiModelProperty(value = "主键id") private String id; @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "邮箱") private String email; @ApiModelProperty(value = "订单信息") private OrderDate orderDate; }
2. JSON参数
@ApiOperation(value = "新增Model接口") @ApiOperationSupport(ignoreParameters = {"uptModel.id","uptModel.name","uptModel.orderDate.id"}) @PostMapping("/insertModel") public Rest<UptModel> insertModel(@RequestBody UptModel uptModel){ Rest<UptModel> r =new Rest<>(); r.setData(uptModel); return r; }
3.json对象套数组
@PostMapping("/saveHead") @ApiOperationSupport(order = 3, ignoreParameters = {"param.id", "param.taxOrgName", "param.applyUserName", "param.deptName", "param.projectName", "param.invTypeName", "param.payStatusName", "param.invStatus", "param.invStatusName", "param.reconcile", "param.reconcileName", "param.bookkeeping", "param.bookkeepingName", "param.invCompanyCode", "param.invCompanyName", "param.invCompanyAddress", "param.invCompanyTaxSubjectNum", "param.custName", "param.custTaxNum", "param.custAddress", "param.businessFieldVoList[0].id", "param.businessFieldVoList[0].goodsName", "param.businessFieldVoList[0].status", "param.businessFieldVoList[0].statusName", "param.businessFieldVoList[0].reconcileName" }) @ApiOperation(value = "新增表头表体", notes = "新增表头表体") public R saveHead(@Valid @RequestBody BusinessVo param) { //1:OA新增 2:系统新增 param.setSource(2); return businessService.saveHead(param); }
愿你走出半生,归来仍是少年!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-01-28 SpringBoot系列---【yml配置文件中的值如何注入到java配置类中?】