尝试使用 springfox 配置访问 swagger-ui.html 时出现 WhiteLabel 错误页面
WhiteLabel error page while trying to access swagger-ui.html using springfox configuration
我正在尝试使用 Springfox 并遵循 https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api 文档从 springboot 项目生成 Swagger 文档。
最初我收到错误 "Full authorization is required to access the resource",因为我在我的应用程序中使用了 OAuth2。我更改了配置以允许所有以 /swagger-ui.html.
结尾的请求
现在我在本地尝试访问 /swagger-ui.html 时收到 "WhiteLabel error page - This application has no explicit mapping for /error"。
我浏览了各种帖子,但 none 的解决方案对我有用 - 我没有使用可能会干扰的 @webmvcconfiguration。
有人可以帮忙吗?
swagger-ui.html 页面进行了多次调用以获取所有详细信息。如果您使用浏览器的开发工具(通常只需按 F12 打开),您将在网络选项卡中看到失败的请求。您需要允许对
的请求
"/v2/api-docs",
"/swagger-resources/**",
"/swagger-ui.html**",
"/webjars/**"
springfox docs 中有一些信息,请查找 'security' 或 'authorization'
对于 Swagger 3.0,URL 更改为
从您的 pom.xml 中删除 v2 依赖项或将其注释掉。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
添加springfox-boot-starter
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
将浏览器中的 URL 更改为:
http://localhost:8080/swagger-ui/index.html
URL 的一般形式是:
- http://host/context-path/swagger-ui/index.html
或者
- http:///host/context-path/swagger-ui/
有关更多信息,请查看此 link 以找到相关文档:
https://springfox.github.io/springfox/docs/snapshot/#changes-in-swagger-ui
这就是我解决问题的方法。这是我的详细代码,如果有人想看的话。
https://github.com/xbox2204/SpringBoot-JPA-Swagger
现在,我使用了 3.0.0-SNAPSHOT 和我从这里创建的最新 spring-boot 启动项目:
- 我的 pom.xml,我添加了以下依赖项:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
- 在我的 application.properties 中,我添加了以下内容:
spring.resources.add-mappings=true
- 在我的 SpringBoot Main/Runner class 中,我添加了这些注解
@EnableWebMvc
@EnableSwagger2
@SpringBootApplication
- 我的 Docket 返回函数如下所示
@Bean
public Docket productApi() {
Contact contact =new Contact(
"Vineet Mishra",
"https://github.com/xbox2204",
"whatwillyoudo@withmyemail.com"
);
ApiInfo apiInfo= new ApiInfoBuilder().title("VINEET SPRING-BOOT API")
.description("Spring-Boot for all")
.termsOfServiceUrl("jUST CHILL!!!")
.contact(contact)
.licenseUrl("something@something.com").version("1.0").build();
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.any())
.build();
}
- 最后,我从
访问了我的swagger-ui
http://localhost:8080/swagger-ui/index.html#
Image of final result
我正在尝试使用 Springfox 并遵循 https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api 文档从 springboot 项目生成 Swagger 文档。
最初我收到错误 "Full authorization is required to access the resource",因为我在我的应用程序中使用了 OAuth2。我更改了配置以允许所有以 /swagger-ui.html.
结尾的请求现在我在本地尝试访问 /swagger-ui.html 时收到 "WhiteLabel error page - This application has no explicit mapping for /error"。
我浏览了各种帖子,但 none 的解决方案对我有用 - 我没有使用可能会干扰的 @webmvcconfiguration。 有人可以帮忙吗?
swagger-ui.html 页面进行了多次调用以获取所有详细信息。如果您使用浏览器的开发工具(通常只需按 F12 打开),您将在网络选项卡中看到失败的请求。您需要允许对
的请求 "/v2/api-docs",
"/swagger-resources/**",
"/swagger-ui.html**",
"/webjars/**"
springfox docs 中有一些信息,请查找 'security' 或 'authorization'
对于 Swagger 3.0,URL 更改为
从您的 pom.xml 中删除 v2 依赖项或将其注释掉。
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>3.0.0</version> </dependency>
添加springfox-boot-starter
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
将浏览器中的 URL 更改为: http://localhost:8080/swagger-ui/index.html
URL 的一般形式是:
- http://host/context-path/swagger-ui/index.html 或者
- http:///host/context-path/swagger-ui/
有关更多信息,请查看此 link 以找到相关文档: https://springfox.github.io/springfox/docs/snapshot/#changes-in-swagger-ui
这就是我解决问题的方法。这是我的详细代码,如果有人想看的话。
https://github.com/xbox2204/SpringBoot-JPA-Swagger
现在,我使用了 3.0.0-SNAPSHOT 和我从这里创建的最新 spring-boot 启动项目:
- 我的 pom.xml,我添加了以下依赖项:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
- 在我的 application.properties 中,我添加了以下内容:
spring.resources.add-mappings=true
- 在我的 SpringBoot Main/Runner class 中,我添加了这些注解
@EnableWebMvc
@EnableSwagger2
@SpringBootApplication
- 我的 Docket 返回函数如下所示
@Bean
public Docket productApi() {
Contact contact =new Contact(
"Vineet Mishra",
"https://github.com/xbox2204",
"whatwillyoudo@withmyemail.com"
);
ApiInfo apiInfo= new ApiInfoBuilder().title("VINEET SPRING-BOOT API")
.description("Spring-Boot for all")
.termsOfServiceUrl("jUST CHILL!!!")
.contact(contact)
.licenseUrl("something@something.com").version("1.0").build();
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.any())
.build();
}
- 最后,我从 访问了我的swagger-ui
http://localhost:8080/swagger-ui/index.html#
Image of final result