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

时间:2025-03-20 08:21:45

由于今天遇到一个很奇怪的问题,我在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造成的,花了一天时间才找到.