Defines a filter expression that narrows down the returned set of items. It allows you to specify criteria, such as numeric comparisons or string matching, to filter the items based on the values of their properties.
The filter parameter must include at least one valid Boolean expression. Each expression should consist of an attribute name, followed by an attribute operator and a value. You have the flexibility to combine multiple expressions using logical operators, and you can also group expressions together using parentheses “()”.
Here are the available attribute operators and their descriptions:
eq
(equal): The attribute and operator values must be identical for a match.
ne
(not equal): The attribute and operator values are not identical.
gt
(greater than): If the attribute value is greater than the operator value, there is a match. The actual comparison depends on the attribute type.
lt
(less than): If the attribute value is less than the operator value, there is a match. The actual comparison depends on the attribute type.
The boolean operators available for combining expressions are:
and
(Logical AND): The filter is considered a match only if both expressions evaluate to true.
or
(Logical OR): The filter is considered a match if either of the expressions evaluates to true.
Parentheses ()
can be used to group boolean expressions and alter the standard order of operations. By grouping expressions with parentheses, you can control how the logical OR operation is evaluated and prioritize certain conditions over others. This allows for more flexibility and precision in constructing complex boolean expressions.
Attribute names and attribute operators used in filters are case insensitive. For example, the following two expressions will evaluate to the same logical value:
filter=article.state Eq "ACTIVE"
filter=article.State eq "ACTIVE"
The evaluation of filters follows a standard order of operations. Attribute operators take precedence over other operators, followed by the grouping operator (parentheses), then the logical AND operator, and finally the logical OR operator.
If the requested filter operation is not recognised, providers must refuse to filter the results and return an HTTP 400 error with an appropriate human readable response.
Here are some examples of filter expressions:
In the provided examples, we have utilised the suggested response structure as defined in the response section. However, it's important to note that these expressions may differ if you opt for an alternative response format or structure.
- filter=last_modified_at gt "2011-05-13T04:42:34Z"
- filter=article.state ne “INACTIVE” and last_modified_at gt "2011-05-13T04:42:34Z"