如何访问 WildFly 18+ 中的 OpenApi 端点?



我与MicroProfile OpenApi注释发生了战争。当我在Payara或OpenLiberty上运行它时,我可以按照规范中的规定 http://localhost:8080/openapi 访问OpenApi文档。

这在WildFly 18和19 Beta 1上都不起作用,即使它声称支持MP OpenApi。我想TCK会检查一下,所以也许我做错了什么。

看起来OpenAPI支持是在WildFly 19 Beta 1中添加的。不幸的是,wildfly.org 页面上的当前文档是针对WildFly 18的,不包括包含OpenAPI的管理员指南。

不过,您可以在GitHub上找到OpenAPI支持的.adoc文件。根据此文件的历史记录,它是在 2019 年 12 月添加的(这可能就是我还没有进入主页文档的原因(。

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

最新更新