过滤列表请求

list 方法可检索一组类型中的多个资源。借助 filter 查询参数,您可以指定检索到的资源必须满足的条件。

过滤条件结构

filter 参数值为字符串。这些字符串由一个或多个条件组成。条件通过 ANDOR 运算符联接。

单个条件的格式为 {field} {operator} {value}。示例如下:

  entityStatus="ENTITY_STATUS_ACTIVE"

过滤字符串的长度上限为 500 个字符。如果字符串过长:

  • 将逻辑拆分为单独的字符串。使用每个过滤字符串进行 list 调用。合并结果以生成单个列表。
  • 从过滤字符串中移除条件。使用已移除的条件在本地过滤检索到的资源。

将条件的值用引号括起来。

确保您的过滤字符串在直接进行 API 调用时已编码,可用于网址中。

如需详细了解过滤字符串结构,请参阅联接条件部分。

过滤条件

每种列表方法都支持特定的过滤条件。该方法的 filter 参数的说明中列出了这些条件。过滤条件通常是检索到的资源字段的子集。

每个条件都支持一个或多个运算符:

比较运算符
EQUALS (=)

字段等于指定值。

示例:entityStatus="ENTITY_STATUS_ACTIVE"

LESS THAN OR EQUAL TO (<=)

字段小于或等于指定值。通常用于按日期或日期时间进行过滤。

示例:updateTime<="2023-04-01T12:00:00Z"

GREATER THAN OR EQUAL TO (>=)

字段大于或等于指定值。通常用于按日期或日期时间进行过滤。

示例:updateTime>="2023-03-01T12:00:00Z"

HAS (:)

字段包含指定值。如果该字段是字符串,则会检查给定值是否是子字符串。如果该字段是数组,则会检查数组中是否包含指定值。

示例:lineItemIds:"1234"

如果某个条件未指定运算符,则仅支持 EQUALS (=)

如果某个条件需要特殊格式,系统会进行说明。

联接条件

组合多个条件以进一步限制 list 回答。

使用逻辑运算符 ANDOR 联接条件。每个 list 方法都会指定支持哪些参数。某些方法仅支持具有一个条件的过滤条件。

使用多个条件时,请考虑以下限制:

限制和示例
AND 必须合并过滤不同字段或以不同方式过滤同一字段的限制条件或限制条件组。 updateTime>="2023-03-01T12:00:00Z" AND updateTime<="2023-04-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED")
OR 必须合并按同一字段过滤的各个限制条件。 (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED") AND (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" OR lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT")
OR 无法合并两组限制。请改为使用具有不同过滤值的多个 list 请求。 以下两个过滤条件字符串必须在单独的请求中使用,不能使用 OR 运算符进行组合:
  • (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123")
  • (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")
即使未包含括号,系统也可能会隐式地将限制条件分组。 过滤字符串 updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT" 会被解读为 updateTime>="2023-03-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT")