knife4j或Swagger接口文档中找不到部分API文档

本文档介绍了在SpringBoot项目中使用Knife4j生成API文档时遇到的一个常见问题:API控制器分类不显示。作者详细分析了问题的原因,指出可能是因为`@Api`注解的`tags`属性与其他控制器重复导致,并提供了针对性的解决方案。通过修改`tags`名称以确保唯一性,成功解决了文档不显示的问题。

由于今天遇到一个很奇怪的问题,我在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 = enterpriseService.getOne(Condition.getQueryWrapper(enterprise));
		return R.data(detail);
	}

	/**
	 * 分页 企业信息表
	 */
	@GetMapping("/list")
	@ApiOperationSupport(order = 2)
	@ApiOperation(value = "分页", notes = "传入enterprise")
	public R<IPage<Enterprise>> list(Enterprise enterprise, Query query) {
		IPage<Enterprise> pages = enterpriseService.page(Condition.getPage(query), Condition.getQueryWrapper(enterprise));
		return R.data(pages);
	}

	/**
	 * 自定义分页 企业信息表
	 */
	@GetMapping("/page")
	@ApiOperationSupport(order = 3)
	@ApiOperation(value = "分页", notes = "传入enterprise")
	public R<IPage<EnterpriseVO>> page(EnterpriseVO enterprise, Query query) {
		IPage<EnterpriseVO> pages = enterpriseService.selectEnterprisePage(Condition.getPage(query), enterprise);
		return R.data(pages);
	}

	/**
	 * 新增 企业信息表
	 */
	@PostMapping("/save")
	@ApiOperationSupport(order = 4)
	@ApiOperation(value = "新增", notes = "传入enterprise")
	public R save(@Valid @RequestBody Enterprise enterprise) {
		return R.status(enterpriseService.save(enterprise));
	}

	/**
	 * 修改 企业信息表
	 */
	@PostMapping("/update")
	@ApiOperationSupport(order = 5)
	@ApiOperation(value = "修改", notes = "传入enterprise")
	public R update(@Valid @RequestBody Enterprise enterprise) {
		return R.status(enterpriseService.updateById(enterprise));
	}

	/**
	 * 新增或修改 企业信息表
	 */
	@PostMapping("/submit")
	@ApiOperationSupport(order = 6)
	@ApiOperation(value = "新增或修改", notes = "传入enterprise")
	public R submit(@Valid @RequestBody Enterprise enterprise) {
		return R.status(enterpriseService.saveOrUpdate(enterprise));
	}


	/**
	 * 删除 企业信息表
	 */
	@PostMapping("/remove")
	@ApiOperationSupport(order = 7)
	@ApiOperation(value = "逻辑删除", notes = "传入ids")
	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
		return R.status(enterpriseService.deleteLogic(Func.toLongList(ids)));
	}


}

我的spring boot应用中生成API文档使用的是knife4j,但是启动后查看文档,无论如何都找不到企业信息表这个控制器分类,导出找都没有找到解决办法,经过和其他类的对比,最终发现了问题的所在.总结了下,API文档里不显示或者隐藏了,主要可能原因,供给遇到个兄弟参考:

1.@API注释上面加了@ApiIgnore注释,这样Swagger或者knife4j就会忽略这个控制器的文档生成.

解决方法: 去掉类上面的@ApiIgnore注释和函数上面的@ApiIgnore注释.就可以了.

2.@Api(value = "企业信息表", tags = "接口")这里定义的tags跟其他的类定义里的tags一样了,造成这个请求类的所有API被合并到到其中一个请求类的文档里了.

解决方案:  tags参数命名不重复即可.

我上面遇到的看不到部分文档,是问题2造成的,花了一天时间才找到.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值