Skip to content

Basic Usage Examples

These examples cover the most common scenarios for filtering, sorting, and paging.

Simple Filtering

Find all active customers whose name contains "john".

DSL: ?filter=status:eq:active&name:contains:johnJQL: ?query=status = "active" AND name CONTAINS "john"

Multi-Field Sorting

Sort by status (ascending), then by creation date (descending).

Query: ?sort=status:asc,createdAt:desc

Paging

Retrieve the second page of results with 10 items per page.

Query: ?page=2&pageSize=10

Combining Parameters

Combine filtering, sorting, and paging in a single request.

Query: ?filter=age:gte:18&sort=name:asc&page=1&pageSize=5

C# Implementation:

csharp
[HttpGet]
public async Task<IActionResult> Get([FromQuery] QueryRequest request)
{
    var options = QueryOptionsParser.Parse(request);
    
    var results = await _context.Customers
        .ApplyValidatedQueryOptions(options)
        .ToListAsync();

    return Ok(results);
}

Released under the MIT License.