我阅读了https://springdoc.github.io/springdoc-openapi-demos/文档以使用springdoc-openapi-webflux-ui。正如文档所述,我只是将springdoc-openapi-webflux-ui库添加到了我的应用中:implementation('org.springdoc:springdoc-openapi-webflux-ui:1.2.26')
此外,我在application.yml中自定义了API的路径:

springdoc:
  swagger-ui:
    path: /swagger-ui.html

当我启动应用程序并转到http://localhost:8080/swagger-ui.html时,它会将我重定向到http://localhost:8080/webjars/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config。在该页面中,出现错误:
Whitelabel Error Page
This application has no configured error view, so you are seeing this as a fallback.
Mon Jan 20 05:16:10 UTC 2020
[7192d9dc] There was an unexpected error (type=Not Found, status=404).
No matching handler

问题是:我应该在我的应用程序中添加其他配置以显示API文档吗?

PS:我使用spring.boot 2.2.2:RELEASE

最佳答案

默认情况下,您只需要添加springdoc-openapi-webflux-ui的依赖项。

 <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-webflux-ui</artifactId>
      <version>1.2.32</version>
   </dependency>

您可以看一下演示代码:
  • https://github.com/springdoc/springdoc-openapi-demos.git-

  • 您可以检查类路径,并尝试从IDE外部运行应用程序。
    根据您的构建工具,确保您具有正确的IDE设置:
  • https://github.com/springdoc/springdoc-openapi/issues/361

  • 另外,请检查您是否正在使用@EnableWebFlux。

    如Spring Boot引用文档中所述,当您使用@EnableWebFlux时,您告诉Spring Boot您希望完全控制WebFlux配置并为此禁用所有自动配置(包括静态资源):
  • https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-webflux-auto-configuration

  • 您有两种解决方案:
  • 删除@EnableWebFlux
  • 如果您确实要控制Bean的创建,并且绝对要使用@EnableWebFlux,则需要添加WebFluxConfigurer的实现。

  • 这里已经讨论过了:
  • https://github.com/springdoc/springdoc-openapi/issues/402
  • 09-26 03:06