> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# フィルタリング

> OData フィルタリングを使用して、CData Arc 管理API から特定のリソースのセットを取得します。

管理API は、特定のリソースのセットを取得するためのOData フィルタリングをサポートしています。OData フィルタは、対象URL の`$filter` クエリパラメータとして設定します。次の論理演算子を使用してOData フィルタを構築できます：

| 演算子     | 説明    |
| ------- | ----- |
| **eq**  | 等しい   |
| **ne**  | 等しくない |
| **gt**  | より大きい |
| **ge**  | 以上    |
| **lt**  | より小さい |
| **le**  | 以下    |
| **not** | 否定    |

例えば、次のAPI リクエストは**gt** を使用して、2019年8月26日以降のすべてのトランザクションのトランザクションログメタデータを取得します：

`GET http://mydomain.com:8001/api.rsc/transactions?$filter=timestamp gt 2019-08-26`

OData フィルタは、**and** および**or** キーワードと組み合わせることができます。例えば、次のAPI リクエストは、2019年8月26日以降の特定のコネクタのトランザクションのトランザクションログメタデータをすべて取得します：

`http://mydomain.com:8001/api.rsc/transactions?$filter=timestamp gt 2019-08-26 and connectorid eq myConnector`

管理API は、OData フィルタ内で次の関数もサポートしています：

* `startswith(property, 'value')` — 指定したプロパティが指定した値で始まる場合にのみリソースが返されます
* `endswith(property, 'value')` — 指定したプロパティが指定した値で終わる場合にのみリソースが返されます
* `contains(property, 'value')` — 指定したプロパティに指定した値が含まれる場合にのみリソースが返されます

例えば、次のAPI リクエストは、アプリケーションが処理したすべてのXML ファイルのトランザクションログメタデータを取得します：

`GET http://mydomain.com:8001/api.rsc/transactions?$filter=contains(filepath,'.xml')`

## 特定のフィールドの選択

**$filter** クエリパラメータに加えて、**$select** クエリパラメータを設定して、レスポンスで返される特定のフィールドを限定できます。このパラメータには、取得するプロパティをカンマ区切りのリストで設定します。例えば、次のAPI リクエストは、設定済みの各コネクタの名前とワークスペースを取得しますが、これらのコネクタの他の設定の詳細は取得しません：

`GET http://mydomain.com:8001/api.rsc/connectors?$select=connectorid,workspace`

API は、単一のリソースから単一の値を取得することもサポートしています。例えば、次のAPI リクエストは、特定のコネクタのワークスペースを返します：

`http://localhost:8001/api.rsc/connectors('myConnector')/workspace/$value`

## 並べ替え

**$filter** および**$select** に加えて、**\$orderby** クエリパラメータを設定して、結果を特定の順序に並べ替えることができます。このパラメータは、次の構文で指定します：

`$orderby=columnName sortDirection`

ここで、**columnName** は並べ替えに使用する列（例：filename、connectorId、timestamp）、**sortDirection** は昇順の場合は*asc*、降順の場合は*desc* です。

例えば、次のAPI リクエストは、アプリケーションが処理したすべてのXML ファイルのトランザクションログメタデータを取得し、ファイルが**送信**されたか**受信**されたかに応じて結果をグループ化します：

`GET http://mydomain.com:8001/api.rsc/transactions?$filter=contains(filepath,'.xml')&$orderby=status asc`

複数の並べ替え条件は、**\$orderby** パラメータにカンマ区切りのリストを設定することで指定できます。リスト内で前にある条件は、後にある条件よりも優先されます。例えば、次のAPI リクエストは前のリクエストと同じデータを取得しますが、**送信**または**受信**のグループ内で、ファイルは大きいものから小さいものへと並べられます：

`GET http://mydomain.com:8001/api.rsc/transactions?$filter=contains(filepath,'.xml')&$orderby=status asc, filesize desc`
