MicroProfile OpenAPI 仕様をサポートする openapi-3.1
フィーチャーを使用して、生成された REST API 資料を集約できます。 REST API を文書化し、パブリック API とプライベート API を指定し、Web アプリケーションを Liberty サーバーにデプロイします。 そうすると、openapi-3.1
によって生成された API 文書を、ユーザー・フレンドリーなユーザー・インターフェースを使用するブラウザーで表示できます。
安定化されたフィーチャー: openapi-3.1
フィーチャーは安定化されました。 フィーチャーを引き続き使用できます。 ただし、戦略的な代替手段は、
mpOpenAPI-3.0
などのMicro Profile Open API機能を使用することです。
手順
- OpenAPI 文書をビルドします。 資料の作成手順については、 Generating REST API documentation with MicroProfile OpenAPI を参照してください。
- Liberty サーバー構成で
openapi-3.1
フィーチャーを使用可能にします。
-
openapi-3.1
フィーチャーをフィーチャー・マネージャーに追加します。
<server>
<featureManager>
<feature>openapi-3.1</feature>
</featureManager>
</server>
- オプション: アプリケーション OpenAPI がプライベートであることを指定します。 デフォルトでは、OpenAPI 文書はパブリックです。 パブリック API にはすべてのユーザーがアクセスでき、認証を必要とせずにアクセスできることもよくあります。 パブリック API については、 /api/docs resourceに記載されています。 API がプライベートなままになるよう指定することができます。 管理用に使用される API は通常はプライベートのままにされます。 プライベート API は、保護のためにパスワードを使用し、/ibm/api/docs リソース内に文書化されます。 このリソースは、すべてのプライベート API およびすべてのパブリック API を文書化します。 MicroProfile 構成プロパティー、
mp.openapi.extensions.liberty.public=false
をアプリケーション・レベルで設定することで、Web アプリケーション用のプライベート API を指定できます。 デフォルトでは、このプロパティーの値は TRUE です。 この構成が必要なのは、プライベートなままにしたいアプリケーションを使用不可にする場合のみです。
- オプション: OpenAPI 文書にアプリケーションが表示されないことを指定します。 デフォルトでは、REST API 資料を含んでいる Web モジュールは、/api/docs リソース内にあるマージされた OpenAPI 文書に表示されます。 Web モジュールが OpenAPI 文書に表示されないようにするには、MicroProfile 構成プロパティー
mp.openapi.extensions.liberty.exclude.context.roots
の値を設定します。 このプロパティーの値は、非表示にするコンテキスト・ルートをコンマで区切ったリストです。 非表示にする各 Web モジュールをコンテキスト・ルートで特定し、それらのコンテキスト・ルートをプロパティーの値に追加します。 例えば、コンテキスト・ルートが /airlinesAdmin
の Web モジュールを非表示にするには、mp.openapi.extensions.liberty.exclude.context.roots=/airlinesAdmin
のように設定します。 このプロパティーは、 openapi-3.1
フィーチャーが有効になっている場合に読み取られます。
- アプリケーションをデプロイします。
- API がパブリックかプライベートかに応じて、以下のいずれかの URL を使用して、生成された API 文書を /api/docs エンドポイントで見つけることができます。
- 非 SSL パブリック API の場合は、http://Liberty_host:http_port/api/docs で文書を表示します。
- SSL パブリック API の場合は、https://Liberty_host:https_port/api/docs で文書を表示します。
- SSL プライベート API の場合は、https://Liberty_host:https_port/ibm/api/docs で文書を表示します。
ヒント:デフォルトでは、1 つのサーバーに 2 つのエンドポイントが使用可能です。
- GET http://Liberty_host:http_port/api/docs
- GET http://Liberty_host:http_port/api/explorer
MicroProfile 構成プロパティー
mp.openapi.extensions.liberty.public.url
を使用して、パブリック・エンドポイントの URL をカスタマイズできます。 このプロパティーは、openapi-3.1 フィーチャーが使用可能である場合に読み取られます。 次の例は、パブリック REST API 資料を GET http://Liberty_host:http_port/myAPI/docs および
http://Liberty_host:http_port/myAPI/explorer で使用可能にするための MicroProfile 構成を示しています。
mp.openapi.extensions.liberty.public.url=myAPI
OpenAPI 文書が生成され、その Liberty サーバーのアプリケーション間で集約されます。 この文書はデフォルトでは YAML フォーマットです。 HTTP 要求の Accept ヘッダーに application/json
値が指定されている場合、文書は JSON フォーマットです。 あるいは、フォーマット照会パラメーター http://Liberty_host:http_port/api/docs?format=json
を使用することもできます。
ヒント:OpenAPI 文書をコンテキスト・ルートでフィルター操作できます。 パブリック・エンドポイント (api/docs
) とプライベート・エンドポイント (ibm/api/docs
) の両方が、検出されたコンテキスト・ルートをフィルター操作できる照会パラメーター root
をサポートしています。 例えば、
GET
http://Liberty_host:http_port/api/docs?root=/myApp
は、
myApp
コンテキスト・ルートの文書のみを含む OpenAPI V3 文書を取得します。
結果
OpenAPI ユーザー・インターフェースは、 /api/docs から集約された定義を http://Liberty_host:http_port/api/explorer
にレンダリングします。 SSL を有効にする場合、保護された UI に https://Liberty_host:https_port/api/explorer
でアクセスできます。
MicroProfile 構成プロパティー mp.openapi.extensions.liberty.enable.private.url=true
を設定することによって、プライベート Web モジュールを表示できます。 このプロパティーは、openapi-3.1
フィーチャーが使用可能である場合に読み取られます。
プライベート Web モジュールの表示が使用可能にされている場合、https://Liberty_host:https_port/ibm/api/explorer
を使用して、パブリックとプライベート両方の Web モジュール用のユーザー・フレンドリーな UI を表示できます。
このユーザー・インターフェースで、アプリケーションからのすべての RESTful エンドポイントを表示できます。 表示されたエンドポイントをフィルター操作して、特定のアプリケーションにフォーカスすることもできます。