第173章 Swagger


概要

Swagger コンポーネントを使用すると、CamelContext 内の Rest 定義されたルートおよびエンドポイントの API ドキュメントを作成できます。Swagger コンポーネントは、CamelContext と統合したサーブレットを作成します。このサーブレットは、各 Rest エンドポイントから情報を取得して API ドキュメント(JSON ファイル)を生成します。

173.1. 概要

Camel 2.14 から利用可能
Rest DSL は、camel-swagger コンポーネントと統合できます。このコンポーネントは、Swagger を使用して REST サービスとその API を公開するために使用されます。

Dependencies

このコンポーネントを使用するには、Maven ユーザーは pom.xml ファイルに以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-swagger</artifactId>
    <version>2.17.0.redhat-630xxx</version>
    <!-- Use the same version as your Camel core version -->
<dependency>
Copy to Clipboard Toggle word wrap

Swagger サーブレットの選択

使用するサーブレットは、使用する Camel バージョンによって異なります。
  • Camel 2.15.x
    org.apache.camel.component.swagger.DefaultCamelSwaggerServlet
    注記
    このデフォルトのサーブレットは任意の環境と統合し、JMX を使用して使用する CamelContext を検出します。これは、Camel 2.15 以降で非推奨となった Camel 2.14.x サーブレットの両方を置き換えます。
  • Camel 2.14.x
    Swagger サーブレットは Spring または servletListener コンポーネントと統合されます。
    • Spring
      org.apache.camel.component.swagger.spring.SpringRestSwaggerApiDeclarationServlet
    • servletListener component
      org.apache.camel.component.swagger.servletlistener.ServletListenerRestSwaggerApiDelarationServlet

サーブレット設定パラメーター

すべてのサーブレットは、以下のオプションをサポートします。
Expand
パラメータータイプ説明
api.contact 文字列API 関連の対応に使用する電子メールを指定します。
api.description 文字列[必須] アプリケーションの簡単な説明を指定します。
api.license 文字列API に使用されるライセンスの名前を指定します。
api.licenseUrl 文字列API に使用されるライセンスの URL を指定します。
api.path 文字列
[必須] API が利用可能である場所を指定します。
  • Camel 2.15 +- 相対パスのみを入力します: host:port/context-path/api.path の実行時に camel-swagger は絶対 api パスを計算します。
  • Camel 2.14.x- 絶対 api パス( protocol://host:port/context-path/api.path )を入力します。
api.termsOfServiceUrl 文字列API 利用規約への URL を指定します。
api.title 文字列[必須] アプリケーションのタイトルを指定します。
api.version 文字列API のバージョンを指定します。デフォルトは 0.0.0 です。
base.path 文字列
[必須] REST サービスが利用できる場所を指定します。
  • Camel 2.15 +- 相対パスのみを入力します( host:port/context-path/base.path )。ランタイム時に、camel-swagger は絶対ベースパスを計算します。
  • Camel 2.14.x- 絶対ベースパス( protocol://host:port/context-path/base.path )を入力します。
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.RestSwaggerCorsFilterWEB-INF/web.xml ファイルに追加します。以下に例を示します。
<!-- Use CORs filter so people can use Swagger UI to browse and test the APIs -->
                    
<filter>
     <filter-name>RestSwaggerCorsFilter</filter-name
     <filter-class>org.apache.camel.component.swagger.RestSwaggerCorsFilter</filter-class>
</filter>
 
<filter-mapping>
     <filter-name>RestSwaggerCorsFilter</filter-name>
     <url-pattern>/api-docs/*</url-pattern>
     <url-pattern>/rest/*</url-pattern>
</filter-mapping>
Copy to Clipboard Toggle word wrap
注記
この例は、非常に簡単な CORS フィルターを示しています。特定のクライアントに異なるヘッダー値を設定したり、特定のクライアントをブロックする場合などに、より高度なフィルターを使用してヘッダー値を設定する必要がある場合があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat