这是我第一次尝试使用 ASP.NET Core Web API,所以我不确定我所做的事情是否合理。我试图让一个端点可以有额外的可选参数,并根据这些可选参数调用不同的方法。
在下面的代码中,我尝试检查pageIndex
、pageSize
和fromIndex
结果计数是否为空,以将代码定向到所需的方法。但是,当我到达终点时,所有这些变量都是 0。然后我尝试使用可空整数(int? pageIndex
),但随后调用的方法不能使用可空整数。我不能使用类似的东西,pageIndex != 0
因为 0 可能是有效的结果。有没有办法正确地做到这一点,或者我应该为这三种方法创建 3 个不同的端点(在提供的代码片段中,我知道我的返回类型是错误的,我只从我的实际方法中提取了相关代码)。
代码:
[ApiController]
[Route("api/[controller]")]
public class QueryController : ControllerBase
{
[HttpGet("{queryId}")]
public async Task<BaseResponse> GetProgressAndResults(string queryId, [FromQuery] int pageIndex, [FromQuery]int pageSize, [FromQuery]int fromIndex, [FromQuery]int resultCount)
{
if (pageIndex != null && pageSize != null)
{
var bob = await _ultinousKafkaClient.GetResultsPaginatedAsync(queryId, pageIndex, pageSize);
}
else if (fromIndex != null && resultCount != null)
{
var bob1 = await _ultinousKafkaClient.GetResultsAsync(queryId, fromIndex, resultCount);
}
else
{
var bob2 = await _ultinousKafkaClient.GetAllResultsAsync(queryId);
}
}
}
您可以使用
.Value
传递到界面: