Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerTransform to SQL Select
操作を使用して、入力 OData GET
要求を SQL SELECT クエリに変換できます。この操作は、データベース用 Anypoint Connector (Database Connector) の select
操作と組み合わせると役立ちます。
出力ペイロードはプリペアードステートメントであり、属性はプリペアードステートメントパラメーターのマップです。
この操作を Database Connector で使用して、OData V4 を使用するデータベースを公開できます。
APIkit は、次の要素をサポートしています。
システムクエリオプション:
$filter
$select
$search
$orderby
$skip
$top
単一エンティティ
エンティティリレーション
サーバー側のページネーション
APIkit は、次の要素をサポートしていません。
パラメーターの別名
組み込み検索条件操作:
has
divby
次を除いた組み込みクエリ関数:
contains
startswith
endwith
$apply
$compute
$expand
OData プロトコルでは、URL を使用して識別されたリソースに対してクライアントがクエリを実行できるようにするための一連の変換を定義しています。
クエリ可能なエンティティ、それぞれの項目、それぞれのリレーションのリストは、HTTP メッセージを使用したデータモデルで定義されています。
OData には、Java Database Connectivity (JDBC) との類似点がいくつかあります。transform-to-sql-select
操作では、このような類似点を利用して、リソースに対する SQL クエリの作成を支援します。
この操作で生成されるメッセージには、SQL select
文をペイロードとし、パラメーター名と値マップを属性として準備されたステートメントが含まれます。
SQL への変換操作は、次のパラメーターを持つ <apikit-odata:transform-to-sql-select>
XML 要素を使用して実装できます。
パラメーター名 | 説明 |
---|---|
Display name (表示名) |
操作の名前。 |
Module configuration (モジュール設定) |
関連モジュール設定の名前。 |
Entity set name (エンティティセット) |
#[attributes.entitySetName] を取得するエンティティセットの名前。 |
Page size (ページサイズ) |
サーバー側ページネーション中に 1 ページに表示する結果の分量を定義する数値。 |
Entity type name (エンティティ種別名) |
エンティティデータモデルによって指定された [attributes.odataRequestAttributes] を使用して OData 要求から取得される文字列。 |
Entity type fields (エンティティ種別項目) |
#[attributes.odataRequestAttributes] を使用して OData 要求から取得される、エンティティ種からプロパティ項目のリストを定義する文字列の配列。 |
Entity type keys (エンティティ種別キー) |
#[attributes.odataRequestAttributes] を使用して OData 要求から取得される、エンティティのキー名と値のマップを定義するオブジェクト。 |
System query options (システムクエリオプション) |
#[attributes.odataRequestAttributes] を使用して OData 要求から取得されるパラメーター。 |
Search transformation enabled (検索変換を有効化) |
|
Strict search term match (厳密な検索語の一致) |
|
SQL identifiers delimiter (SQL 識別子の区切り文字) |
生成された SQL ステートメント内の識別子を区切るオプション (オプション: DOUBLE_QUOTES、BRACKETS、および BACK_TICKS)。 例:
|
SQL limit rows (SQL 制限行数) |
行数を制限するオプション (オプション: LIMIT および FETCH_NEXT_ROWS_ONLY)。 例:
|
Date Transform Type (日付変換型) |
次のいずれかの値が指定されます。
この操作では、デフォルトで文字列として ` Date/DateTime` の値が取得されます。 |
OData の $filter
式では、比較、論理、算術、グルーピングの演算子を使用します。演算子のリストとその意味については、 OData4 仕様を参照してください。
APIkit では、has
演算子と divby
演算子はサポートされません。
OData でサポートされる絞り込み式については、 仕様を参照してください。
transform-to-sql-select
操作は、次の単項演算子とバイナリ演算子、そしてメソッド演算子をサポートします。
OData の演算子 | SQL の演算子 |
---|---|
add |
+ |
and |
AND |
div |
/ |
eq |
= |
ge |
>= |
gt |
> |
le |
=< |
lt |
< |
mod |
% |
mul |
* |
ne |
<> |
または |
または |
sub |
- |
not |
NOT |
- |
- |
contains |
LIKE %value% |
startswith |
LIKE value% |
endswith |
LIKE %value |
この操作は、システムクエリオプションで指定された $search
式に基づいて WHERE
句を構築します。実装では、条件と一致するプロパティ値を持つすべての要素を選択します。
デフォルトでは、項目値に用語が含まれている場合に用語が一致します。設定で [strict search term match (厳密な検索語の一致)]
が true
に設定されている場合、search
操作では項目値と検索用語が完全に一致する必要があります。
[search transformation enabled (検索変換を有効化)]
および [strict search term match (厳密な検索語の一致)]
パラメーターによって $search
機能が定義されます。