You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置可空布尔类型URI参数 解决Swagger参数必选问题

功能需求

我希望实现接口支持三种数据检索逻辑:

  • 当isEven = null(默认值)时,同时返回偶数与奇数结果;
  • 当isEven = true时,仅返回偶数结果;
  • 当isEven = false时,仅返回奇数结果。
现有实现代码
[ApiController]
[Route("api/[controller]/[action]")]
public class MathematicsController : ControllerBase
{
    [Route("{isEven:bool?}")]
    [HttpGet]
    public IActionResult GetData(bool? isEven = null)
    {
        var data = Enumerable.Range(1, 30).AsQueryable();

        if (isEven is not null)
            data = data.Where(x => (x % 2 == 0) == isEven);

        return Ok(data.ToList());
    }
}
遇到的问题

Swagger界面中必须选中下拉选项才可执行接口请求,我已经在路由配置中通过{isEven:bool?}的写法标记该参数为可选,请问遗漏了什么配置?

问题截图

排查结论

经排查确认问题根源为Swagger UI本身的交互限制,通过Chrome浏览器直接访问https://localhost:40443/api/mathematics/getdata地址(末尾带或不带斜杠均可)接口可正常响应,问题已解决。

内容的提问来源于stack exchange,提问作者Display Name

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 06:21:29