第277章 URI 形式
rest-openapi:[specificationPath#]operationId
ここで、operationId
は OpenApi 仕様の操作の ID であり、specificationPath
は仕様へのパスです。specificationPath
が指定されていない場合、デフォルトで openapi.json
になります。検索メカニズムは、Camels ResourceHelper
を使用してリソースをロードします。つまり、CLASSPATH リソース (classpath:my-specification.json
)、ファイル (file:/some/path.json
)、Web (http://api.example.com/openapi.json
) を使用できます。または Bean を参照する (ref:nameOfBean
) か、Bean のメソッド (bean:nameOfBean.methodName
) を使用して仕様リソースを取得し、OpenApi 独自のリソース読み込みサポートに失敗します。
このコンポーネントは HTTP クライアントとしては機能せず、上記の別のコンポーネントに委任します。検索メカニズムは、RestProducerFactory インターフェイスを実装する単一のコンポーネントを検索し、それを使用します。CLASSPATH に複数のパスが含まれている場合は、プロパティー componentName
を設定して、委譲先のコンポーネントを示す必要があります。
設定のほとんどは OpenApi 仕様から取得されますが、コンポーネントまたはエンドポイントで指定することによってそれらをオーバーライドするオプションが存在します。通常、host
または basePath
が仕様と異なる場合は、オーバーライドする必要があります。
host
パラメーターには、スキーム、ホスト名、およびポート番号を含む絶対 URI を含める必要があります。たとえば、https://api.example.com
です。
componentName
を使用して、リクエストを実行するために使用するコンポーネントを指定します。この名前付きコンポーネントは Camel コンテキストに存在し、必要な RestProducerFactory インターフェイスを実装する必要があります — 上部にリストされているコンポーネントも同様です。
コンポーネントレベルでもエンドポイントレベルでも componentName を指定しない場合、CLASSPATH で適切なデリゲートが検索されます。これが機能するためには、RestProducerFactory インターフェイスを実装する CLASSPATH に 1 つのコンポーネントのみが存在する必要があります。
このコンポーネントのエンドポイント URI は寛大です。つまり、メッセージヘッダーに加えて、REST 操作のパラメーターをエンドポイントパラメーターとして指定できます。これらは、後続のすべての呼び出しで一定であるため、すべての呼び出しで実際に一定であるパラメーターに対してのみこの機能を使用するのが理にかなっています。— たとえば、/api/{version}/users/{id}
などのパスの API バージョンです。