Query options
This articles goes over the various query options implemented by the queryable API.
$filter
The $filter
query option allows API consumers to filter the result set of a query.
It implements the syntax and basic functionality of the OData specification.
Example
/api/v1/Inventory/Parts?$filter=PartNumber eq 'TEST' AND StandardPrice gt 200
Filters parts where the part number is exactly TEST
and the standard price of the part is
greater than 200
.
See Parts for more information about the part queryable.
Supported query operations
The supported query operations from the OData standard are as follows.
- Eq
- Neq
- Lt
- Gt
- Le
- Ge
- And
- Or
Supported query functions
The supported query functions from the OData standard are as follows.
- add
- mul
- div
- mod
- isnull
- isnotnull
- contains*
* Implemented as IN and not as Contains, see below for more information.
Like function
In addition to the standard OData functions, we have also implemented a like
function that translates into an SQL LIKE query.
Example (no encoding)
$filter=like(CategoryString, '%test%')
Contains()
The way contains works is a bit different from how OData specifies. It will instead translate
into the equivalent of an IN
query.
The following contains statement:
contains(PartNumber, 'Test1', 'Test2', 'Test3')
Will translate into:
PartNumber IN ('Test1', 'Test2', 'Test3')
$select
The $select
query option allows API consumers to request only a subset of fields for a
queryable entity.
It implements the comma-separated syntax defined in the OData specification.
Example
/api/v1/Inventory/Parts?$select=Id,PartNumber,Description
Selects only the business key identifier, part number and description of all parts.
See Parts for more information about the part queryable.
$expand
The $expand
query option allows API consumers to request inner entities of a queryable entity. A
property may be expanded if it has the Expandable
attribute in the API Reference.
The implementation is partially based on the syntax defined in the OData specification.
Example
/api/v1/Sales/CustomerOrders?$expand=Rows,MailingAddress
Queries all customer orders along with its customer order rows and mailing address.
See Customer
$orderby
The $orderby
query option allows API consumers to order the result of a query.
The implementation is based on the syntax defined in the OData specification.
Example
/api/v1/Inventory/Parts?$orderby=PartNumber desc
Queries all parts ordered by part number in descending order.
See Parts for more information about the part queryable.
$top
The $top
query option allows API consumers to limit the result of a query.
The implementation is based on the syntax defined in the OData specification.
Example
/api/v1/Inventory/Parts?$top=5
Queries the first five parts.
$skip
The $skip
query option allows API consumers to skip a specified amount of results in a query.
The implementation is based on the syntax defined in the OData specification.
/api/v1/Inventory/Parts?$skip=5
Queries all but the first five parts.