I have a GET endpoint in Asp.Net Core 2.2 where I want to return all records by default and if any query provided then I am returning a search query response. Here my query Dto never comes null even no query param provided. I want to keep Dto null when no query parameter provided.
My request Dto-
public sealed class SearchQueryDto
{
public SearchQueryDto()
{
Limit = 10;
Offset = 0;
}
public string Query { get; set; }
public string PhoneNumber { get; set; }
public string ClassificationId { get; set; }
public int Offset { get; set; }
public int Limit { get; set; }
}
My Endpoint-
[HttpGet]
public async Task<IActionResult> GetAllRecords([FromQuery] [CanBeNull] SearchQueryDto request)
{
if (request != null) // always not null
{
return Ok(await _service.Search(request));
}
return Ok(await _service.GetAll());
}
Here I am expecting request to null when no query parameter provided but it always appears initialized.