由于今天遇到一个很奇怪的问题,我在sprintboot中建好了一个请求处理类,如下
/**
* 企业信息表 控制器
*
* @author AKAILEE
* @since 2021-07-29
*/
@RestController
@AllArgsConstructor
@RequestMapping("/enterprise")
@Api(value = "企业信息表", tags = "接口")
public class EnterpriseController extends BladeController {
private final IEnterpriseService enterpriseService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入enterprise")
public R<Enterprise> detail(Enterprise enterprise) {
Enterprise detail = ((enterprise));
return (detail);
}
/**
* 分页 企业信息表
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入enterprise")
public R<IPage<Enterprise>> list(Enterprise enterprise, Query query) {
IPage<Enterprise> pages = ((query), (enterprise));
return (pages);
}
/**
* 自定义分页 企业信息表
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "分页", notes = "传入enterprise")
public R<IPage<EnterpriseVO>> page(EnterpriseVO enterprise, Query query) {
IPage<EnterpriseVO> pages = ((query), enterprise);
return (pages);
}
/**
* 新增 企业信息表
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入enterprise")
public R save(@Valid @RequestBody Enterprise enterprise) {
return ((enterprise));
}
/**
* 修改 企业信息表
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入enterprise")
public R update(@Valid @RequestBody Enterprise enterprise) {
return ((enterprise));
}
/**
* 新增或修改 企业信息表
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入enterprise")
public R submit(@Valid @RequestBody Enterprise enterprise) {
return ((enterprise));
}
/**
* 删除 企业信息表
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return (((ids)));
}
}
我的spring boot应用中生成API文档使用的是knife4j,但是启动后查看文档,无论如何都找不到企业信息表这个控制器分类,导出找都没有找到解决办法,经过和其他类的对比,最终发现了问题的所在.总结了下,API文档里不显示或者隐藏了,主要可能原因,供给遇到个兄弟参考:
1.@API注释上面加了@ApiIgnore注释,这样Swagger或者knife4j就会忽略这个控制器的文档生成.
解决方法: 去掉类上面的@ApiIgnore注释和函数上面的@ApiIgnore注释.就可以了.
2.@Api(value = "企业信息表", tags = "接口")这里定义的tags跟其他的类定义里的tags一样了,造成这个请求类的所有API被合并到到其中一个请求类的文档里了.
解决方案: tags参数命名不重复即可.
我上面遇到的看不到部分文档,是问题2造成的,花了一天时间才找到.