Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第173章 Swagger
概要
Swagger コンポーネントを使用すると、CamelContext 内の Rest 定義されたルートおよびエンドポイントの API ドキュメントを作成できます。Swagger コンポーネントは、CamelContext と統合したサーブレットを作成します。このサーブレットは、各 Rest エンドポイントから情報を取得して API ドキュメント(JSON ファイル)を生成します。
173.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.14 から利用可能
Dependencies リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントを使用するには、Maven ユーザーは
pom.xml
ファイルに以下の依存関係を追加する必要があります。
Swagger サーブレットの選択 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
使用するサーブレットは、使用する Camel バージョンによって異なります。
- Camel 2.15.x
org.apache.camel.component.swagger.DefaultCamelSwaggerServlet
注記このデフォルトのサーブレットは任意の環境と統合し、JMX を使用して使用する CamelContext を検出します。これは、Camel 2.15 以降で非推奨となった Camel 2.14.x サーブレットの両方を置き換えます。 - Camel 2.14.xSwagger サーブレットは Spring または
servletListener
コンポーネントと統合されます。- Spring
org.apache.camel.component.swagger.spring.SpringRestSwaggerApiDeclarationServlet
servletListener
componentorg.apache.camel.component.swagger.servletlistener.ServletListenerRestSwaggerApiDelarationServlet
サーブレット設定パラメーター リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
すべてのサーブレットは、以下のオプションをサポートします。
パラメーター | タイプ | 説明 |
---|---|---|
api.contact | 文字列 | API 関連の対応に使用する電子メールを指定します。 |
api.description | 文字列 | [必須] アプリケーションの簡単な説明を指定します。 |
api.license | 文字列 | API に使用されるライセンスの名前を指定します。 |
api.licenseUrl | 文字列 | API に使用されるライセンスの URL を指定します。 |
api.path | 文字列 |
[必須] API が利用可能である場所を指定します。
|
api.termsOfServiceUrl | 文字列 | API 利用規約への URL を指定します。 |
api.title | 文字列 | [必須] アプリケーションのタイトルを指定します。 |
api.version | 文字列 | API のバージョンを指定します。デフォルトは 0.0.0 です。 |
base.path | 文字列 |
[必須] REST サービスが利用できる場所を指定します。
|
cors | ブール値 |
CORS を有効にするかどうかを指定します。このパラメーターは、API ブラウザーの CORS のみを有効にします。REST サービスへのアクセスは有効化されません。デフォルトは
false です。
このパラメーターを使用する代わりに、CorsFilter (x を参照)を使用することが推奨されます。
|
swagger.version | 文字列 | Swagger 仕様のバージョンを指定します。デフォルトは 1.2 です。 |
CorsFilter の使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Swagger UI を使用して REST API を表示する場合は、CORS のサポートを有効にする必要がある場合があります。Swagger UI が REST API とは異なるホスト名/ポートでホストされ、実行されている場合は、オリジン(CORS)全体で REST リソースにアクセスする必要があります。CorsFilter は、CORS を有効にするために必要な HTTP ヘッダーを追加します。
すべてのリクエストに対して、CorsFilter は以下のヘッダーを設定します。
- Access-Control-Allow-Origin = *
- access-Control-Allow-Methods = GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH
- Access-Control-Max-Age = 3600
- Access-Control-Allow-Headers = Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers
これを使用するには、WAR デプロイメントで
org.apache.camel.component.swagger.RestSwaggerCorsFilter
を WEB-INF/web.xml
ファイルに追加します。以下に例を示します。
注記
この例は、非常に簡単な CORS フィルターを示しています。特定のクライアントに異なるヘッダー値を設定したり、特定のクライアントをブロックする場合などに、より高度なフィルターを使用してヘッダー値を設定する必要がある場合があります。