常見的問題系列---【@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);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM