#swagger-ui #openapi #apache-tomee #microprofile
#swagger-ui #openapi #apache-tomee #микропрофиль
Вопрос:
Я использую TomEE microprofile и таким образом определил путь к своему приложению rest:
@ApplicationPath("api")
public class RestConfiguration extends Application {
}
При развертывании приложения в журнале tomee log отображается URL-адрес доступа к сгенерированным интерфейсным ресурсам:
Service URI: http://localhost:8080/api/openapi-ui/
При доступе к URL-адресу появилось это сообщение на веб-странице swagger-ui:
Ошибка выборки не определена /openapi
Если я изменю путь к приложению на пустой:
@ApplicationPath("")
Тогда все работает нормально, и swagger показывает все определения методов обслуживания.
Итак, что мне следует сделать, чтобы заставить его работать, добавив «api» в аннотацию ApplicationPath?
Пробовал с «/ api», но тоже не работает.
Ответ №1:
Я провел тест здесь с Tomee-8.0.4, следуя конфигурациям, предположил, что вы используете JAR.
в вашем pom.xml используйте зависимость:
<dependency>
<groupId>org.microprofile-ext.openapi-ext</groupId>
<artifactId>openapi-ui</artifactId>
<version>1.1.3</version>
</dependency>
<build>
<finalName>tomee-demo</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>${tomee.version}</version>
<executions>
<execution>
<id>executable-jar</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<context>ROOT</context>
<tomeeClassifier>microprofile</tomeeClassifier>
</configuration>
</plugin>
</plugins>
</build>
в microprofile-config.properties используется:
mp.openapi.servers=http://localhost:8080/api
openapi.ui.yamlUrl=/api/openapi
openapi.ui.serverVisibility=visible
и запустите свой проект снова.
ссылка:https://github.com/microprofile-extensions/openapi-ext/tree/master/openapi-ui
Комментарии:
1. После выполнения ваших предложений по поводу файла microprofile-config.properties проблема была решена, и теперь пользовательский интерфейс swagger работает нормально. Спасибо за эту информацию, чувак!.