Как отобразить документацию 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, и отключите для этого все автоконфигурации (включая статические ресурсы):
У вас есть два решения:
- Удалить @EnableWebFlux
- Если вы действительно хотите взять под контроль создание Bean-компонента и абсолютно хотите использовать @EnableWebFlux, тогда вам необходимо добавить реализацию WebFluxConfigurer.
Это обсуждалось здесь: