Swagger UI 2.9.2 не показывает службы при объединении контроллеров

#spring-boot #swagger-ui #springfox

#весенняя загрузка #swagger-ui #springfox

Вопрос:

Я использую springfox swagger для документирования остальных веб-сервисов в рамках проекта Spring Boot, но swagger-ui не работает… Я попадаю на страницу индекса и вижу все объединения контроллеров, но когда я выбираю любую из них, службы не отображаются. Я следовал инструкциям, описанным здесь:https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api

Просматривая код за индексной страницей swagger-ui, я вижу, что там много ошибок, все они одинаковы:

system.js:461 Ошибка типа: Array.prototype.filter вызывается при null или undefined в filter () в system.js:458 в Object.currentFilter (system.js:262) при t.value (filter.jsx:24) при t.render (root-injects.js: 93) в u._rendervalidatedcomponent withoutownerorcontext ( ReactCompositeComponent.js: 796) в u._renderValidatedComponent (ReactCompositeComponent.js: 819) в u.performInitialMount (ReactCompositeComponent.js:359) в u.mountComponent (ReactCompositeComponent.js:255) в Object.mountComponent (ReactReconciler.js:43) (анонимный) @ system.js: 461

Я также попытался посмотреть, есть ли в JSON, полученном v2 / api-docs, что-нибудь необычное, но ничего… кажется, все в порядке.

Теперь кое-что еще более странное… Я пробовал с swagger версии 2.8.0, и тогда swagger-ui показывает все правильно. НО! Если я посмотрю на код, лежащий в основе, отображаются те же ошибки.

Какие-либо рекомендации?

Ответ №1:

Наконец-то у меня все заработало… проблема заключалась в том, что я настроил безопасность spring для доступа к определенным контроллерам и добавил некоторые из путей, которые нужны swagger, в белый список, но пропустил 2 пути, которые нужны swagger. Я добавил их, и теперь все работает нормально… вот пути, которые я добавил в белый список для работы swagger:

         <url path="/webjars/**" />
        <url path="/v2/**" />
        <url path="/configuration/**" />
        <url path="/swagger*/**" />