找到 Spring Boot 2 的 Swagger UI 页面
Swagger UI page is found for Spring Boot 2
使用 Spring 引导 2.3.1
。
这是来自 pom
的片段:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger-version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger-version}</version>
</dependency>
swagger版本是last for now:3.0.0
.
Swagger 配置:
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket swaggerApiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.paths(PathSelectors.any())
.apis(RequestHandlerSelectors.basePackage("com.demo.controller"))
.build()
.apiInfo(apiDetails());
}
private ApiInfo apiDetails() {
return new ApiInfo("Carpark Controller API",
"Carpark Service for managing car parks",
"0.0.1",
"",
new springfox.documentation.service.Contact("Jan",
"www.demo.com",
""),
"API License",
"",
Collections.emptyList());
}
}
没有添加安全配置。没有任何 server-path
或一些额外的配置。
当应用程序大摇大摆时 JSON 文档可用:
http://localhost:8080/v2/api-docs
不过,如果要导航到swaggerUI:
http://localhost:8080/swagger-ui.html
结果将是:
There was an unexpected error (type=Not Found, status=404).
尝试将 swagger 版本降级到 2.9.2
结果是一样的。
如何解决这个问题?
已找到 Spring 引导 2 的解决方案:
从 pom 文件中读取所有其他 swagger 依赖项。只添加下一个:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
Swagger 配置可以与之前 @EnableSwagger2
相同。
启动应用程序。
Swagger UI 页面现在不同了:
http://localhost:8080/swagger-ui/index.html
终于成功了!
在网上寻找此问题的解决方案时发现 following comment。
看到 Spring 引导版本的最新样本:BootWebmvcApplication
这里是link到other projects sources。
在 POM.XML 文件中,您遗漏了一个具有 swagger starter 的依赖项
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
使用 Spring 引导 2.3.1
。
这是来自 pom
的片段:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger-version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger-version}</version>
</dependency>
swagger版本是last for now:3.0.0
.
Swagger 配置:
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket swaggerApiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.paths(PathSelectors.any())
.apis(RequestHandlerSelectors.basePackage("com.demo.controller"))
.build()
.apiInfo(apiDetails());
}
private ApiInfo apiDetails() {
return new ApiInfo("Carpark Controller API",
"Carpark Service for managing car parks",
"0.0.1",
"",
new springfox.documentation.service.Contact("Jan",
"www.demo.com",
""),
"API License",
"",
Collections.emptyList());
}
}
没有添加安全配置。没有任何 server-path
或一些额外的配置。
当应用程序大摇大摆时 JSON 文档可用:
http://localhost:8080/v2/api-docs
不过,如果要导航到swaggerUI:
http://localhost:8080/swagger-ui.html
结果将是:
There was an unexpected error (type=Not Found, status=404).
尝试将 swagger 版本降级到 2.9.2
结果是一样的。
如何解决这个问题?
已找到 Spring 引导 2 的解决方案:
从 pom 文件中读取所有其他 swagger 依赖项。只添加下一个:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
Swagger 配置可以与之前 @EnableSwagger2
相同。
启动应用程序。
Swagger UI 页面现在不同了:
http://localhost:8080/swagger-ui/index.html
终于成功了!
在网上寻找此问题的解决方案时发现 following comment。
看到 Spring 引导版本的最新样本:BootWebmvcApplication
这里是link到other projects sources。
在 POM.XML 文件中,您遗漏了一个具有 swagger starter 的依赖项
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>