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

# ソートとフィルタリング

REST API は、特定のリソースセットを取得するためのOData フィルタリングをサポートしています。OData フィルタを適用するには、ターゲットURL の\*\*\$filter\*\* クエリパラメータとして設定するだけです。

次の論理演算子を使用してOData フィルタを構築できます：

| 演算子     | 意味         |
| ------- | ---------- |
| **eq**  | 次と等しい      |
| **ne**  | 次と等しくない    |
| **gt**  | 次より大きい     |
| **ge**  | 次より大きいか等しい |
| **lt**  | 次より小さい     |
| **le**  | 次より小さいか等しい |
| **not** | 否定         |

例えば、次のAPI リクエストは、**gt** を使用して2024年1月1日以降のすべてのジョブの履歴メタデータを取得します。

`GET http://localhost:8181/sync/api.rsc/history?$filter=runstartdategt 2024-01-01`

**and** や**or** キーワードで、OData フィルタを組み合わせることも可能です。例えば、次のAPI リクエストは、**gt** を使用して2019年8月26日以降の特定のコネクタのすべてのジョブの履歴メタデータを取得します。

`http://localhost:8181/sync/api.rsc/history?$filter=runstartdate gt 2019-08-26 and connectorid eq myConnector`

REST API は、OData フィルタ内で以下の関数もサポートしています。

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

例えば、次のAPI リクエストは、失敗したジョブのジョブ履歴の詳細を取得します。

`GET http://localhost:8181/sync/api.rsc/history?$filter=contains(details,''failed')`

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

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

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

## 結果の並べ替え

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

`$orderby=ColumnName SortDirection`

この構文では、ColumnName は並べ替えに使用するカラム（例：filename、connectorId、timestamp など) で、SortDirection は**asc**（昇順）または**desc**（降順）です。

例えば、次のAPI リクエストは、失敗したすべてのジョブのジョブ履歴の詳細を取得します。次に、ジョブの開始時刻の降順で結果を並べ替えます。

`GET http://localhost:8181/sync/api.rsc/history?$filter=contains(details,'ERROR')&$orderby=runstartdate desc`

**\$orderby** パラメータをカンマ区切りリストで設定することで、複数の順序付け条件を指定できます。前の条件が後の条件よりも優先されます。例えば、次のAPI リクエストは前述のリクエストと同じデータを取得しますが、リクエストは最初に、ジョブを実行したSync のインスタンスに基づいて、失敗したジョブをグループ化します。

`GET http://localhost:8181/sync/api.rsc/history?$filter=contains(details,'ERROR')&$orderby=instanceid asc, runstartdate desc`
