3.7. MicroProfile OpenAPI 管理
3.7.1. 启用 MicroProfile OpenAPI 复制链接链接已复制到粘贴板!
microprofile-openapi-smallrye
子系统在 standalone-microprofile.xml
配置中提供。但是,JBoss EAP XP 默认使用 standalone.xml
。您必须在 standalone.xml
中包含子系统才能使用它。
或者,您可以按照 使用 MicroProfile 子系统和扩展更新独立配置 的流程来更新 standalone.xml
配置文件。
流程
在 JBoss EAP 中启用 MicroProfile OpenAPI smallrye 扩展:
/extension=org.wildfly.extension.microprofile.openapi-smallrye:add()
/extension=org.wildfly.extension.microprofile.openapi-smallrye:add()
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下管理命令启用
microprofile-openapi-smallrye
子系统:/subsystem=microprofile-openapi-smallrye:add()
/subsystem=microprofile-openapi-smallrye:add()
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新加载服务器。
reload
reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
microprofile-openapi-smallrye
子系统已启用。
3.7.2. 使用 Accept HTTP 标头请求 MicroProfile OpenAPI 文档 复制链接链接已复制到粘贴板!
使用 Accept HTTP 标头从部署请求一个 MicroProfile OpenAPI 文档,采用 JSON 格式。
默认情况下,OpenAPI 端点会返回 YAML 文档。
先决条件
- 正在查询的部署被配置为返回 MicroProfile OpenAPI 文档。
流程
发出以下
curl
命令查询部署的/openapi
端点:curl -v -H'Accept: application/json' http://localhost:8080/openapi
$ curl -v -H'Accept: application/json' http://localhost:8080/openapi < HTTP/1.1 200 OK ... {"openapi": "3.0.1" ... }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用部署的 URL 和端口替换 http://localhost:8080。
Accept 标头指示将使用
application/json
字符串返回 JSON 文档。
3.7.3. 使用 HTTP 参数请求 MicroProfile OpenAPI 文档 复制链接链接已复制到粘贴板!
使用 HTTP 请求中的查询参数,从部署请求以 JSON 格式请求 MicroProfile OpenAPI 文档。
默认情况下,OpenAPI 端点会返回 YAML 文档。
先决条件
- 正在查询的部署被配置为返回 MicroProfile OpenAPI 文档。
流程
发出以下
curl
命令查询部署的/openapi
端点:curl -v http://localhost:8080/openapi?format=JSON
$ curl -v http://localhost:8080/openapi?format=JSON < HTTP/1.1 200 OK ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用部署的 URL 和端口替换 http://localhost:8080。
HTTP 参数
format=JSON
表示要返回 JSON 文档。
3.7.4. 配置 JBoss EAP 以提供静态 OpenAPI 文档 复制链接链接已复制到粘贴板!
配置 JBoss EAP 以提供描述主机的 REST 服务的静态 OpenAPI 文档。
当 JBoss EAP 配置为提供静态 OpenAPI 文档时,将在任何 Jakarta RESTful Web 服务和 MicroProfile OpenAPI 注解之前处理静态 OpenAPI 文档。
在生产环境中,在提供静态文档时禁用注解处理。禁用注解处理可确保客户端可以使用不可变和版本的 API 合同。
流程
在应用程序源树中创建目录:
mkdir APPLICATION_ROOT/src/main/webapp/META-INF
$ mkdir APPLICATION_ROOT/src/main/webapp/META-INF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOT 是包含应用的
pom.xml
配置文件的目录。查询 OpenAPI 端点,将输出重定向到文件:
curl http://localhost:8080/openapi?format=JSON > src/main/webapp/META-INF/openapi.json
$ curl http://localhost:8080/openapi?format=JSON > src/main/webapp/META-INF/openapi.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认情况下,端点提供 YAML 文档,
format=JSON
指定返回 JSON 文档。配置应用程序,以便在处理 OpenAPI 文档模型时跳过注解扫描:
echo "mp.openapi.scan.disable=true" > APPLICATION_ROOT/src/main/webapp/META-INF/microprofile-config.properties
$ echo "mp.openapi.scan.disable=true" > APPLICATION_ROOT/src/main/webapp/META-INF/microprofile-config.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重建应用程序:
mvn clean install
$ mvn clean install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下管理 CLI 命令再次部署应用程序:
取消部署应用程序:
undeploy microprofile-openapi.war
undeploy microprofile-openapi.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署应用程序:
deploy APPLICATION_ROOT/target/microprofile-openapi.war
deploy APPLICATION_ROOT/target/microprofile-openapi.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss EAP 现在在 OpenAPI 端点上提供静态 OpenAPI 文档。
3.7.5. 禁用 microprofile-openapi-smallrye 复制链接链接已复制到粘贴板!
您可以使用管理 CLI 在 JBoss EAP XP 中禁用 microprofile-openapi-smallrye
子系统。
流程
禁用
microprofile-openapi-smallrye
子系统:/subsystem=microprofile-openapi-smallrye:remove()
/subsystem=microprofile-openapi-smallrye:remove()
Copy to Clipboard Copied! Toggle word wrap Toggle overflow