如何使用 springdoc-openapi-webflux-ui 显示 app API 文档?

2022-09-03 08:05:43

我读这个 https://springdoc.org/demos.html 使用spreddoc-openapi-webflux-ui。正如文档所说,我刚刚将库添加到我的应用程序中:springdoc-openapi-webflux-uiimplementation('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


答案 1

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

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

您可以查看演示代码:

您可以检查类路径,并尝试从 IDE 外部运行该应用程序。请确保您具有正确的 IDE 设置,具体取决于您的构建工具:

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

如 Spring Boot 参考文档中所述,当您使用@EnableWebFlux时,您告诉 Spring Boot 您希望完全控制 WebFlux 配置并禁用所有自动配置(包括静态资源):

您有两种解决方案:

  1. 删除@EnableWebFlux
  2. 如果你真的想控制Bean的创建,并且你绝对想使用@EnableWebFlux,那么你需要添加一个WebFluxConfigurer的实现。

这里已经讨论了这一点:


答案 2

推荐