C# 我的HTTP触发Azure函数如何处理请求';直接传递给Run方法的参数?

C# 我的HTTP触发Azure函数如何处理请求';直接传递给Run方法的参数?,c#,azure-functions,C#,Azure Functions,我有以下由HTTP调用触发的Azure函数: public static class MyAzureFunction { [FunctionName("api/v1/resource/")] public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get")]HttpRequestMessage request, ILogger logger) { // Extract

我有以下由HTTP调用触发的Azure函数:

public static class MyAzureFunction
{
    [FunctionName("api/v1/resource/")]
    public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get")]HttpRequestMessage request, ILogger logger)
    {
        // Extract query string params from the request...
    } 
}
我希望将参数自动传递给Run方法,与ASP.NET Core Web API相同,而不必从请求本身提取参数并对其进行解析

下面是我想要得到的一个例子:

[FunctionName("api/v1/resource/{resourceId}")]
public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get")]HttpRequestMessage request, ILogger logger, int resourceId)
{
     // ...
} 
或者,在发布帖子时:

[FunctionName("api/v1/resource/")]
public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "post")]HttpRequestMessage request, ILogger logger, [FromBody] SomeEntityModel entityModel)
{
         // ...
}
参考文献

对于GET,您可以使用触发器上的
Route
属性为函数设置路由模板

定义路由模板,控制函数响应的请求URL。如果未提供,则默认值为

这允许函数代码支持地址中的参数,如{resourceId}

您可以在参数中使用任何Web API路由约束

比如说

Route = "v1/resource/{resourceId:int}"
默认情况下,所有函数路由都以api作为前缀

下面将使用带约束的参数

[FunctionName("MyFunctionName")]
public static async Task Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", Route = "v1/resource/{resourceId:int}")]
    HttpRequestMessage request, 
    ILogger logger, 
    int resourceId) {
    // ...
}
到目前为止,我还没有找到有关使用
FromBody
属性的详细信息,但下面的引文似乎很有成效

对于C#和F#函数,可以将触发器输入的类型声明为
HttpRequestMessage
或自定义类型。如果选择
HttpRequestMessage
,则可以完全访问请求对象对于自定义类型,运行时尝试解析JSON请求主体以设置对象属性。

注意:强调我的

应该包括哪些

[FunctionName("MyPOSTFunction")]
public static async Task Run(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = "v1/resource/" )]
    SomeEntityModel entityModel, 
    ILogger logger) {
    // ...
}

快看一下这个。它使用路由模板解决GET问题,但位于配置文件中。。我还在查电话POST@Nkosi哦,太好了!我还以为我看过医生。。。一旦你发布了答案,我会将其标记为已接受。在重读之后,这篇文章看起来可能也会被覆盖。上一个例子的主要问题是,如果一个必需的json字段未被解析,自动绑定不会引发任何异常。。。程序只是将其登录并进一步工作,当它应该在根本原因上返回错误响应时抛出异常。。。