第261章 REST Swagger コンポーネント
Camel バージョン 2.19 から利用可能
rest-swagger は、Swagger (Open API)仕様ドキュメントから REST プロデューサーを設定し、RestProducerFactory インターフェースを実装するコンポーネントに委譲します。現在既知の作業コンポーネントは以下の通りです。
Maven ユーザーは、このコンポーネントの pom.xml
に以下の依存関係を追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-rest-swagger</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
261.1. URI 形式
rest-swagger:[specificationPath#]operationId
operationId
は Swagger 仕様の操作の ID で、spec Path は仕様へ
のパスになります。specificationPath
が指定されていない場合、デフォルトは swagger.json
です。ルックアップメカニズムは Camels ResourceHelper
を使用してリソースをロードします。つまり、CLASSPATH リソース(classpath:my-specification.json
)、ファイル(file:/some/path.json
)、web(http://api.example.com/swagger.json
)、または Bean(ref:nameOfBean
)を参照したり、Bean(bean:nameOfBean.methodName
)のメソッドを使用して仕様リソースを取得し、Swagger の独自のリソースロードサポートが失敗します。
このコンポーネントは HTTP クライアントとして機能せず、上記の他のコンポーネントに委任されます。ルックアップメカニズムは、RestProducerFactory インターフェースを実装する単一のコンポーネントを検索し、それを使用します。CLASSPATH に複数のものが含まれる場合、プロパティー componentName
は委譲するコンポーネントを示すように設定する必要があります。
ほとんどの設定は Swagger 仕様から取得されますが、コンポーネントまたはエンドポイントで設定を指定して上書きするオプションが存在します。通常、host
または basePath
は、これらが仕様とは異なる場合に上書きするだけで済みます。
host
パラメーターには、スキーム、ホスト名、ポート番号が含まれる絶対 URI が含まれる必要があります(例: https://api.example.com
)。
componentName
では、要求の実行に使用するコンポーネントを指定します。
コンポーネントまたはエンドポイントレベルで componentName を指定しない場合、CLASSPATH は適切な委譲を検索します。これを機能させるには、RestProducerFactory インターフェースを実装する CLASSPATH に 1 つのコンポーネントのみが存在する必要があります。
このコンポーネントのエンドポイント URI は lenient です。つまり、メッセージヘッダーに加えて、エンドポイントパラメーターとして REST 操作のパラメーターを指定できます。これらは、後続のすべての呼び出しに対して定数されるため、/api/7.1/users/{id}
など、パスにあるすべての呼び出しの定数がないパラメーターにのみ、この機能を使用することが理にかなっています。