我想在 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 directory
为copy if newer
.
见下面的内容,我使用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"
}
}
}
- 1 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消