第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 ファイル