修改之前:
第一次代碼實現:
@RequestMapping(path="/getByStoreAndTypeAndSn/{storeId}/{versionType}/{terminalSn}", method=RequestMethod.GET )
public TerminalSet getListByStoreIdAndVersionAndSn(@PathVariable("storeId") Long storeId,@PathVariable("versionType") Integer versionType,@PathVariable("terminalSn") String terminalSn){
return terminalSetService.getListByStoreIdAndVersionAndSn(storeId,versionType,terminalSn);
}
第二次代碼實現:
@ApiOperation(value="根據分店編號和版本類型,設備Sn號獲取注冊信息,用於設備加載時認證")
@RequestMapping(path="/getByStoreAndTypeAndSn", method=RequestMethod.GET )
@ApiImplicitParams({
@ApiImplicitParam(name="storeId",value="部門編號",paramType = "query"),
@ApiImplicitParam(name="versionType",value="版本類型(0-總店版 1-門店版 2-收銀台版)",allowableValues="0,1,2",paramType = "query",required=true),
@ApiImplicitParam(name="terminalSn",value="設備Sn號",paramType = "query",required=true),
})
public TerminalSet getListByStoreIdAndVersionAndSn(@RequestParam Long storeId, @RequestParam Integer versionType,@RequestParam String terminalSn){
return terminalSetService.getListByStoreIdAndVersionAndSn(storeId,versionType,terminalSn);
}
修改之后:
@ApiOperation(value="根據分店編號和版本類型,設備Sn號獲取注冊信息,用於設備加載時認證")
@RequestMapping(path="/getByStoreAndTypeAndSn", method=RequestMethod.GET )
@ApiImplicitParams({
@ApiImplicitParam(name="storeId",value="部門編號",paramType = "query",required=false),
@ApiImplicitParam(name="versionType",value="版本類型(0-總店版 1-門店版 2-收銀台版)",allowableValues="0,1,2",paramType = "query",required=true),
@ApiImplicitParam(name="terminalSn",value="設備Sn號",paramType = "query",required=true),
})
public TerminalSet getListByStoreIdAndVersionAndSn( Long storeId, Integer versionType, String terminalSn){
return terminalSetService.getListByStoreIdAndVersionAndSn(storeId,versionType,terminalSn);
}
總結:
設置非必傳參數時,不能用 /getByStoreAndTypeAndSn/{storeId}/{versionType}/{terminalSn} 這種方式傳參
當使用 @ApiImplicitParams注解時已經設置了參數的的基礎信息,就無須再使用 @RequestParam注解
如果未使用@ApiImplicitParams注解時,用 @RequestParam注解來設置需要傳入的參數,此時需要用 required 來設置是否為必傳參數,true為必傳,false為非必傳。