我有一个Azure Functions应用程序。
我很惊讶地发现,在定义Azure WebJob函数时,HttpTriggerAttribute不必应用于HttpRequest参数。
因此,虽然这是有效的,并且与大多数教程和示例相匹配,
为什么HttpTriggerAttribute作为参数属性而不是像FunctionNameAttribute一样作为方法属性实现?
我很惊讶地发现,在定义Azure WebJob函数时,HttpTriggerAttribute不必应用于HttpRequest参数。
因此,虽然这是有效的,并且与大多数教程和示例相匹配,
[FunctionName("get")]
public async Task<IActionResult> Get(
[HttpTrigger(AuthorizationLevel.Anonymous, nameof(HttpMethods.Get), Route = "api/get")]HttpRequest httpRequest)
这也是有效的。
[FunctionName("post")]
public async Task<IActionResult> Post(
[HttpTrigger(AuthorizationLevel.Anonymous, nameof(HttpMethods.Post), Route = "api/post")]MyType body)
由于该属性与HttpRequest参数没有关联,所以我很惊讶这个属性是一个参数属性而不是像方法属性一样的方法属性。
[FunctionName("post")]
[HttpTrigger(AuthorizationLevel.Anonymous, nameof(HttpMethods.Post), Route = "api/post")]
public async Task<IActionResult> Post(MyType body)
为什么HttpTriggerAttribute作为参数属性而不是像FunctionNameAttribute一样作为方法属性实现?
public async Task<IActionResult> Post([HttpTrigger(...)]MyType body, HttpRequest httpRequest)
将绑定body
和httpRequest
参数。但是该属性仅应用于body
参数。 - Zach