4.7. 开发 MicroProfile OpenAPI 应用
4.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
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
microprofile-openapi-smallrye 子系统已启用。
4.7.2. 为 MicroProfile OpenAPI 配置 Maven 项目 复制链接链接已复制到粘贴板!
创建一个 Maven 项目,以设置用于创建 MicroProfile OpenAPI 应用的依赖项。
先决条件
- 已安装 Maven。
- JBoss EAP Maven 存储库已配置。
流程
初始化项目:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令创建项目的目录结构以及
pom.xml配置文件。编辑
pom.xml配置文件使其包含:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
pom.xml配置文件和目录结构来创建应用。
4.7.3. 创建 MicroProfile OpenAPI 应用 复制链接链接已复制到粘贴板!
创建返回 OpenAPI v3 文档的应用程序。
先决条件
- 配置了 Maven 项目以创建 MicroProfile OpenAPI 应用。
流程
创建用于存储类文件的目录:
mkdir -p APPLICATION_ROOT/src/main/java/com/example/microprofile/openapi/
$ mkdir -p APPLICATION_ROOT/src/main/java/com/example/microprofile/openapi/Copy to Clipboard Copied! Toggle word wrap Toggle overflow APPLICATION_ROOT 是包含应用的
pom.xml配置文件的目录。进入新目录:
cd APPLICATION_ROOT/src/main/java/com/example/microprofile/openapi/
$ cd APPLICATION_ROOT/src/main/java/com/example/microprofile/openapi/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必须在这个目录中创建以下步骤中的所有类文件。
使用以下内容创建类文件
InventoryApplication.java:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此类充当应用的 REST 端点。
使用以下内容创建一个类文件
Fruit.java:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含以下内容的类文件
FruitResource.java:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入应用程序的根目录:
cd APPLICATION_ROOT
$ cd APPLICATION_ROOTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下 Maven 命令构建和部署应用程序:
mvn wildfly:deploy
$ mvn wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow 测试应用。
使用
curl访问示例应用程序的 OpenAPI 文档:curl http://localhost:8080/openapi
$ curl http://localhost:8080/openapiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 返回以下输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关 MicroProfile SmallRye OpenAPI 中定义的注解列表,请参阅 MicroProfile OpenAPI 注解。
4.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-INFCopy 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.jsonCopy 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.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重建应用程序:
mvn clean install
$ mvn clean installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下管理 CLI 命令再次部署应用程序:
取消部署应用程序:
undeploy microprofile-openapi.war
undeploy microprofile-openapi.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow 部署应用程序:
deploy APPLICATION_ROOT/target/microprofile-openapi.war
deploy APPLICATION_ROOT/target/microprofile-openapi.warCopy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss EAP 现在在 OpenAPI 端点上提供静态 OpenAPI 文档。