Как отобразить документацию API приложения с помощью springdo c -openapi-webflux-ui? - PullRequest
8 голосов
/ 20 января 2020

Я прочитал эту https://springdoc.github.io/springdoc-openapi-demos/ документацию по использованию springdo c -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

Когда я запускаю приложение, и go до http://localhost: 8080 / swagger-ui. html, он перенаправляет меня на http://localhost: 8080 / webjars / swagger-ui / index. html? ConfigUrl = / v3 / API-документы / чванство-конфигурации . На этой странице я получил сообщение об ошибке:

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 Ответ

2 голосов
/ 23 января 2020

По умолчанию вам просто нужно добавить зависимость springdo c -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, что вы sh получаете полный контроль над конфигурацией WebFlux и отключаете все автоконфигурации для этого (включая stati c ресурсы):

У вас есть два решения:

  1. Remove @ EnableWebFlux
  2. Если вы действительно хотите взять контроль над созданием Бина и абсолютно хотите использовать @EnableWebFlux, то вам нужно добавить реализацию WebFluxConfigurer.

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

...