Swagger-ui包不生效, 打开swagger-ui.html页面不显示接口信息,显示No operations defined in spec!
springboot版本2.1.4
swagger、swaggerui版本2.9.2
1、swagger配置类如图
2、包目录如图
3、model类注解如图
4、controller注解如图
5、配置文件如图
6、swagger-ui界面如图
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();
首先,需要检查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:
<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>
@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可以根据需要进行配置,以过滤出需要生成文档的接口。