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);
}