swagger-ui不生效不显示api

问题遇到的现象和发生背景

Swagger-ui包不生效, 打开swagger-ui.html页面不显示接口信息,显示No operations defined in spec!

操作环境、软件版本等信息

springboot版本2.1.4
swagger、swaggerui版本2.9.2

尝试过的解决方法

1、swagger配置类如图

img

2、包目录如图

img

3、model类注解如图

img

img

4、controller注解如图

img

5、配置文件如图

img

6、swagger-ui界面如图

img

我想要达到的结果

swagger-ui正常显示接口信息

初始化的时候再加一句,指定扫描方法上加上了ApiOperation注解的方法


return (new Docket(DocumentationType.SWAGGER_2)).apiInfo(this.apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).apis(RequestHandlerSelectors.basePackage("com.teligen.ypzx")).paths(PathSelectors.any()).build();

以下内容部分参考ChatGPT模型:


首先,需要检查swagger-ui.html页面中是否正确引入了swagger.js、swagger-ui.js、swagger-ui.css等相关文件,并且确保它们的路径正确。如果路径不正确,可能会导致swagger-ui无法加载接口信息。

其次,需要检查接口文档是否正确编写,包括接口路径、请求方式、参数等信息是否正确。可以使用Swagger Editor或在线编辑器进行编辑,并确保生成的yaml或json格式文档符合Swagger规范。

最后,可以尝试使用Swagger Codegen生成服务器端或客户端代码,并根据生成的代码来调整接口文档。同时,也可以尝试使用Swagger Inspector对接口进行测试,以确保接口可以正常访问和返回正确的数据。

以下是一个简单的例子,展示如何在Spring Boot项目中使用Swagger2来生成接口文档和swagger-ui:

  1. 在pom.xml文件中添加以下依赖:
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${springfox.version}</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${springfox.version}</version>
</dependency>
  1. 在Spring Boot的配置类中添加以下代码:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo"))
                .paths(PathSelectors.any())
                .build();
    }
}

其中,RequestHandlerSelectors和PathSelectors可以根据需要进行配置,以过滤出需要生成文档的接口。

  1. 在应用启动后,访问 http://localhost:8080/swagger-ui.html 即可查看生成的接口文档和swagger-ui。

如果我的建议对您有帮助、请点击采纳、祝您生活愉快