第54章 Swagger サポートでの JAX-RS エンドポイントの拡張
概要
CXF Swagger2Feature (org.apache.cxf.jaxrs.swagger.Swagger2Feature) を使用すると、パブリッシュ済みの JAX-RS サービスエンドポイントを単純な設定で拡張することによって Swagger 2.0 ドキュメントを生成できます。
Swagger2Feature は、Spring Boot および Karaf 実装の両方でサポートされます。
54.1. Swagger2Feature オプション リンクのコピーリンクがクリップボードにコピーされました!
Swagger2Feature では、以下のオプションを使用できます。
| 名前 | 説明 | デフォルト |
|---|---|---|
|
|
コンテキストルートパス+( | null |
|
| 連絡先情報 | |
|
| 説明+ | アプリケーション" |
|
| セキュリティーフィルター+ | null |
|
| ホストおよびポート情報+ | null |
|
|
すべてのリソースをスキャンする際に、特定のパスを除外します ( | null |
|
| ライセンス+ | "Apache 2.0 ライセンス" |
|
| ライセンス URL+ | |
|
|
| false |
|
| リソースのスキャンが必要なパッケージ名のコンマ区切りの一覧++ | エンドポイントに設定されたサービスクラスの一覧 |
|
| 機能をフィルターとして実行します。 | false |
|
| swagger のドキュメントを生成します。 | true |
|
|
アノテーション付きの JAX-RS リソースを含むすべてのリソースをスキャンします ( | false |
|
| プロトコルスキーム+ | null |
|
| Swagger UI の設定 | null |
|
| サービス URL+ | null |
|
| タイトル+ | "サンプル REST アプリケーション" |
|
|
Swagger が | false |
|
| バージョン+ | "1.0.0" |
+ オプションは Swagger の BeanConfig で定義されます。
++ オプションは Swagger の ReaderConfig で定義されます。
Karaf 実装
ここでは、REST サービスが JAR ファイルで定義され、Fuse on Karaf コンテナーにデプロイされる Swagger2Feature を使用する方法について説明します。
==== クイックスタートの例
Fuse Software Downloads ページから Red Hat Fuse quickstarts をダウンロードできます。
Quickstart zip ファイルには、CXF を使用して RESTful (JAX-RS) Web サービスを作成する方法と、Swagger を有効にして JAX-RS エンドポイントにアノテーションを付ける方法を実証するクイックスタートの /cxf/rest/ ディレクトリーが含まれています。
==== Swagger の有効化
Swagger を有効にするには、以下の操作が必要です。
CXF クラス (
org.apache.cxf.jaxrs.swagger.Swagger2Feature) を<jaxrs:server>定義に追加して CXF サービスを定義する XML ファイルを変更します。例は、例 55.4: XML ファイル を参照してください。
REST リソースクラスで以下を行います。
サービスで必要な各アノテーションの Swagger API アノテーションをインポートします。
import io.swagger.annotations.*
import io.swagger.annotations.*Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、* は
Api、ApiOperation、ApiParam、ApiResponse、ApiResponsesなどです。詳細は、
https://github.com/swagger-api/swagger-core/wiki/Annotationsを参照してください。例は、例 55.5: リソースクラスの例 を参照してください。
-
Swagger アノテーションを JAX-RS でアノテーションが付けられたエンドポイント (
@PATH、@PUT、@POST、@GET、@Produces、@Consumes、@DELETE、@PathParamなど) に追加します。
例は、例 55.5: リソースクラスの例 を参照してください。
例 55.4: XML ファイル
例 55.5: リソースクラスの例
Spring Boot 実装
本セクションでは、Spring Boot で Swagger2Feature を使用する方法について説明します。
==== クイックスタートの例
クイックスタートサンプル (https://github.com/fabric8-quickstarts/spring-boot-cxf-jaxrs) は、Spring Boot で Apache CXF を使用する方法を実証します。クイックスタートは Spring Boot を使用して、Swagger が有効な CXF JAX-RS エンドポイントが含まれるアプリケーションを設定します。
==== Swagger の有効化
Swagger を有効にするには、以下の操作が必要です。
REST アプリケーションで以下を行います。
Swagger2Feature をインポートする。
import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
import org.apache.cxf.jaxrs.swagger.Swagger2Feature;Copy to Clipboard Copied! Toggle word wrap Toggle overflow Swagger2Feature を CXF エンドポイントに追加する。
endpoint.setFeatures(Arrays.asList(new Swagger2Feature()));
endpoint.setFeatures(Arrays.asList(new Swagger2Feature()));Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例は、例 55.1: REST アプリケーションの例 を参照してください。
Java 実装ファイルで、サービスが必要とする各アノテーションの Swagger API アノテーションをインポートします。
import io.swagger.annotations.*
import io.swagger.annotations.*Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、* は
Api、ApiOperation、ApiParam、ApiResponse、ApiResponsesなどです。詳細は、
https://github.com/swagger-api/swagger-core/wiki/Annotationsを参照してください。例は、例 55.2: Java 実装ファイル を参照してください。
Java ファイルで、Swagger アノテーションを JAX-RS でアノテーションが付けられたエンドポイント (
@PATH、@PUT、@POST、@GET、@Produces、@Consumes、@DELETE、@PathParamなど) に追加します。例は、例 55.3: Java ファイル を参照してください。
例 55.1: REST アプリケーションの例
例 55.2: Java 実装ファイル
例 55.3: Java ファイル