Как получить доступ к конечной точке OpenApi в WildFly 18+? - PullRequest
1 голос
/ 24 января 2020

У меня война с аннотациями MicroProfile OpenApi. Когда я запускаю его на Payara или OpenLiberty, я могу получить доступ к документу OpenApi по адресу http://localhost: 8080 / openapi , как указано в спецификации c.

. Это не работает на WildFly 18 или 19 Beta 1, хотя он утверждает, что поддерживает MP OpenApi. Я предполагаю, что TCK проверит это, так что, возможно, я делаю что-то не так.

1 Ответ

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

Похоже, что поддержка OpenAPI была добавлена ​​с WildFly 19 Beta 1 . К сожалению, текущая документация на странице wildfly.org предназначена для WildFly 18 и не содержит руководства администратора по включению OpenAPI.

Тем не менее, вы можете найти файл .adoc для поддержки OpenAPI на GitHub . Основываясь на истории этого файла, он был добавлен в декабре 2019 года (возможно, поэтому я еще не дошел до документации на домашней странице).

Текущая документация для OpenAPI утверждает, что является частью конфигурации standalone-microprofile.xml по умолчанию, и документ доступен по адресу http://localhost: 8080 .

Если вы не запускаете эту конфигурацию, вы можете включить подсистему OpenAPI с помощью следующих команд (которые я тестировал с WildFly 19 Beta 1):

➜  bin ./jboss-cli.sh 
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] connect
[standalone@localhost:9990 /] /extension=org.wildfly.extension.microprofile.openapi-smallrye:add()
{"outcome" => "success"}

[standalone@localhost:9990 /] /subsystem=microprofile-openapi-smallrye:add()
{
    "outcome" => "success",
    "response-headers" => {
        "operation-requires-reload" => true,
        "process-state" => "reload-required"
    }
}

[standalone@localhost:9990 /] 

Обратите внимание: если затем вы пытаетесь получить к нему доступ в http://localhost: 8080 / openapi в вашем браузере, вы можете получить 406 - неприемлемо. Просто запросите правильный тип контента или используйте cURL:

curl -v http://localhost:8080/openapi // YAML output
curl -v http://localhost:8080/openapi?format=JSON  // JSON output
...