Как отобразить документацию API приложения с помощью springdoc-openapi-webflux-ui?

Я прочитал эту 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')

Кроме того, я настроил путь к API в application.yml:

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.

Это обсуждалось здесь:

Другие вопросы по тегам