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

如何无需逐个配置Route参数让Azure Functions路由全小写?

无需逐个配置Route参数实现Azure Functions端点路由全小写的方法

针对你提到的场景,无需为每个函数手动配置Route参数就能让所有端点路由自动转为小写,有以下两种可行方案(以.NET隔离进程Azure Functions为例):

方案1:通过host.json全局配置

在项目根目录的host.json文件中添加路由选项配置,开启全局小写路由:

{
  "version": "2.0",
  "extensions": {
    "http": {
      "routeOptions": {
        "lowercaseRoutes": true
      }
    }
  }
}

配置完成后,原本默认生成的/api/GetHealth会自动变为/api/gethealth,所有未手动指定Route参数的函数路由都会统一转为小写格式。

方案2:自定义路由名称策略(进阶)

如果需要更灵活的路由命名控制,可以实现自定义的IFunctionNameRouteProvider接口,替换默认的路由生成逻辑:

using Microsoft.Azure.Functions.Worker.Core.Routing;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .ConfigureServices(services =>
    {
        services.AddSingleton<IFunctionNameRouteProvider, LowercaseFunctionNameRouteProvider>();
    })
    .Build();

host.Run();

public class LowercaseFunctionNameRouteProvider : IFunctionNameRouteProvider
{
    public string GetRouteName(FunctionNameRouteContext context)
    {
        // 将函数名称转为小写作为路由
        return context.FunctionName.Value.ToLowerInvariant();
    }
}

这种方式可以完全自定义路由生成规则,不仅限于小写转换,还能根据需求调整路由格式。

注意:如果同时配置了host.json的lowercaseRoutes和自定义路由提供器,自定义逻辑会优先生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:12:02