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

.NET 6进程内Azure函数如何在OpenAPI规范中设置仅日期参数

解决方案:在Azure函数OpenAPI规范中生成仅日期类型参数

要让OpenAPI规范生成仅日期(string($date))类型的参数,而非带时间的string($date-time),可以通过以下两步实现:

  1. 将路由参数类型替换为DateOnly
    .NET 6及以上版本提供了DateOnly类型,专门用于表示无时间部分的日期,完全匹配你的需求。修改HttpTrigger的路由约束与函数参数:

    [FunctionName("GetHistory")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = "history/{itemId}/{channel}/{fromDate:date}/{toDate:date}")] HttpRequest req,
        string itemId,
        string channel,
        DateOnly fromDate, // 替换为DateOnly类型
        DateOnly toDate,   // 替换为DateOnly类型
        ILogger log)
    {
        // 函数业务逻辑
        return new OkResult();
    }
    

    路由中添加:date约束,可确保传入的格式符合日期格式要求。

  2. 调整OpenApiParameter的类型配置
    将OpenApiParameter的Type属性改为typeof(DateOnly),同时修正参数位置为Path(你的参数在路由路径中,而非Query查询串):

    [OpenApiParameter(
        name: "fromDate", 
        In = ParameterLocation.Path,
        Required = true, 
        Type = typeof(DateOnly), 
        Summary = "起始日期", 
        Description = "获取价格的起始日期,仅使用日期部分(时间将被忽略)", 
        Visibility = OpenApiVisibilityType.Important)]
    [OpenApiParameter(
        name: "toDate", 
        In = ParameterLocation.Path, 
        Required = true, 
        Type = typeof(DateOnly), 
        Summary = "结束日期", 
        Description = "获取价格的结束日期,仅使用日期部分(时间将被忽略)", 
        Visibility = OpenApiVisibilityType.Important)]
    

完成上述修改后,生成的OpenAPI规范中,fromDate和toDate的类型会自动变为string($date),满足仅日期的需求。

内容的提问来源于stack exchange,提问作者Björn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:06:30