为了账号安全,请及时绑定邮箱和手机立即绑定

Azure 函数可选的“中间”路由参数

Azure 函数可选的“中间”路由参数

C#
浮云间 2021-11-14 15:04:48
我想在 Azure 函数中将“中间”路由参数设为可选。前任: public static HttpResponseMessage MyFunction([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "SomeRoute/{MyOptionalRoute=int?}/AnotherRoute")]HttpRequestMessage req, TraceWriter log,        int MyOptionalRoute = 0)    {       //some magic    }  如果我给 MyOptionalValue 一个值,则此方法有效。例如:/SomeRoute/123/AnotherRoute但如果我不这样做,则返回 404:例如:/SomeRoute/AnotherRoute有谁知道是否有办法解决这个问题,这样我就不必创建两个单独的函数?我一直在环顾四周,我看到的是人们使用可选的路由参数作为序列中的最后一个参数。也许我只是不知道 google 的关键字是什么,或者只是不可能?感谢我能得到的所有帮助。
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

如您所见,Azure 函数尚不支持可选的“中间”路由参数。只有连续的可选参数像SomeRoute/{MyOptionalRoute:int?}/{AnotherRoute:int?}作品。

回到正题,找一个带有代理函数的解决方法,看看是否满足你的要求。

将 a 添加proxies.json到您的函数项目,将文件属性更改copy to output directorycopy if newer.

//img1.sycdn.imooc.com//6190b52c000190ce02900217.jpg

见下面的内容,我使用0作为保留数作为空值的替代。代理定向http://localhost/api/SomeRoute/AnotherRoute到http://localhost/api/SomeRoute/0/AnotherRoute与 的模式匹配的真实 url SomeRoute/{MyOptionalRoute:int}/AnotherRoute。


{

  "$schema": "http://json.schemastore.org/proxies",

  "proxies": {

    "proxy1": {

      "matchCondition": {

        "methods": [ "GET" ],

        "route": "/api/SomeRoute/AnotherRoute"

      },

      "backendUri": "http://localhost/api/SomeRoute/0/AnotherRoute"

    }

  }

}


查看完整回答
反对 回复 2021-11-14
  • 1 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信