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

# 过滤规则

> 使用 OData 过滤从知行之桥系统 API 检索特定资源集。

系统 API 支持 OData 过滤以检索特定的资源集。在目标 URL 中，OData 过滤器被设置为 `$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 文件的事务日志元数据，然后根据文件是 **sent** 还是 **received** 对结果进行分组：

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

通过将 **\$orderby** 参数设置为逗号分隔列表，可指定多个排序条件。列表中靠前的条件优先于列表中靠后的条件。例如，下列 API 请求与前一个请求检索相同的数据，但在 **sent** 或 **received** 组中，文件按大小从大到小列出：

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