【发布时间】:2018-06-26 13:43:01
【问题描述】:
我有一个已编译的 Azure 函数,我想使用 HttpTrigger 属性定义一个自定义路由。
我的代码如下所示:
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "qotd/{format}")]HttpRequestMessage req, string format, TraceWriter log)
{
var quote = GetRandomQuote();
if (format == "json")
{
return req.CreateResponse(HttpStatusCode.OK, quote, "application/json");
}
else
{
var strQuote = quote.Text + Environment.NewLine + quote.Author;
return req.CreateResponse(HttpStatusCode.OK, strQuote, "text/plain");
}
}
当我这样称呼它时: localhost:7071/api/qotd/json 我得到 404。
当我这样称呼它时: localhost:7071/api/qotd/?format=json 那么函数就成功了。
如果我这样称呼它: 本地主机:7071/api/qotd/ 我得到一个相当讨厌的错误:
"执行函数时出现异常:QotDFunction -> 异常绑定 参数“格式”-> 绑定数据不包含预期值 '格式'...”
如何在 HttpTrigger 的 Route 参数中定义绑定,以便我可以这样调用我的函数:
localhost:7071/api/qotd - 参数格式的默认值
和
localhost:7071/api/qotd/json - 将“json”作为格式值传递?
对于路线,我也尝试了“qotd/{format:alpha?}”,但得到了相同的结果。
【问题讨论】: