4.7. Eclipse MicroProfile OpenAPI アプリケーションの開発
4.7.1. Eclipse MicroProfile OpenAPI の有効化 リンクのコピーリンクがクリップボードにコピーされました!
microprofile-openapi-smallrye サブシステムは、standalone-microprofile.xml 設定で提供されます。しかし、JBoss EAP XP はデフォルトで standalone.xml を使用します。使用するには、standalone.xml にサブシステムを含める必要があります。
または、Updating standalone configurations with Eclipse MicroProfile subsystems and extensions の手順に従い、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. Eclipse MicroProfile OpenAPI の Maven プロジェクトの設定 リンクのコピーリンクがクリップボードにコピーされました!
Maven プロジェクトを作成し、Eclipse MicroProfile OpenAPI アプリケーションを作成するための依存関係を設定します。
要件
- Maven がインストールされている。
JBoss EAP Maven リポジトリーが設定されている。
JBoss EAP Maven リポジトリーの設定に関する詳細は、POM ファイルを使用した 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. Eclipse MicroProfile OpenAPI アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenAPI v3 ドキュメントを返すアプリケーションを作成します。
要件
- Maven プロジェクトは、Eclipse 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 アプリケーションの root ディレクトリーに移動します。
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 annotations を参照してください。
4.7.4. 静的 OpenAPI ドキュメントを提供するよう JBoss EAP を設定 リンクのコピーリンクがクリップボードにコピーされました!
ホストの REST サービスを記述する静的 OpenAPI ドキュメントに対応するように JBoss EAP を設定します。
JBoss EAP が静的 OpenAPI ドキュメントを提供するよう設定されている場合、静的 OpenAPI ドキュメントは JAX-RS および MicroProfile 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 ドキュメントを提供するようになりました。