> ## 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`

### コネクタタイプ固有のプロパティの選択

デフォルトのOData レスポンス形式では、コネクタのリソーススキーマで宣言されているプロパティ（`connectorid`、`workspaceid`、`connectortype` など）のみが返されます。コネクタタイプ固有のプロパティ（AS2 コネクタの`as2identifier`、AS2 およびHTTP コネクタの`url`、SFTP コネクタの`remotehost` など）はスキーマで宣言されていないため、デフォルト形式で`$select` を使用すると黙って省略されます。

`$select` クエリでコネクタタイプ固有のプロパティを含めるには、リクエストに`@json` を追加します：

`GET http://mydomain.com:8001/api.rsc/connectors?@json&$select=connectorid,as2identifier`

コネクタタイプ固有のプロパティが特定のコネクタタイプに該当しない場合、そのコネクタの行ではそのプロパティが省略されます。これはエラーではなく、想定された動作です。例えば、`as2identifier` はAS2 コネクタの行には表示されますが、SFTP コネクタやFTP コネクタでは省略されます。

標準プロパティとコネクタタイプ固有のプロパティを同じ`$select` リストに組み合わせることもできます：

`GET http://mydomain.com:8001/api.rsc/connectors?@json&$select=connectorid,workspaceid,as2identifier`

## 並べ替え

`$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`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.