如何在Azure函数中对HTTP POST执行模型绑定?

如何在Azure函数中对HTTP POST执行模型绑定?,azure,azure-webjobs,azure-functions,Azure,Azure Webjobs,Azure Functions,我希望将我的HTTP POST参数绑定到Azure函数,并希望确保不受信任的数据正确映射到我的模型类 现在我使用的是mime类型的application/json,可能还需要支持表单Post和Protobuf 因为我知道对后者的支持有点复杂,所以如何对JSON数据执行简单的模型绑定 我花了很多时间阅读HTTP触发器,浏览了Azure函数文档的所有页面,但没有看到任何有助于解决此问题的内容。我怀疑我需要研究一种较低级别的技术(webjobs?)。如果您的HttpTrigger函数配置为接受JS

我希望将我的HTTP POST参数绑定到Azure函数,并希望确保不受信任的数据正确映射到我的模型类

现在我使用的是mime类型的
application/json
,可能还需要支持表单Post和Protobuf

  • 因为我知道对后者的支持有点复杂,所以如何对JSON数据执行简单的模型绑定

我花了很多时间阅读HTTP触发器,浏览了Azure函数文档的所有页面,但没有看到任何有助于解决此问题的内容。我怀疑我需要研究一种较低级别的技术(webjobs?)。

如果您的HttpTrigger函数配置为接受JSON POST请求,您可以绑定到自定义模型类型,如下所示:

using System.Net;

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

public static async Task<HttpResponseMessage> Run(Person person, HttpRequestMessage req)
{
    return person.FirstName == null
        ? req.CreateResponse(HttpStatusCode.BadRequest, "Who are you?")
        : req.CreateResponse(HttpStatusCode.OK, $"Hello {person.FirstName}!");
}
使用System.Net;
公共阶层人士
{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共整数{get;set;}
}
公共静态异步任务运行(个人,HttpRequestMessage请求)
{
return person.FirstName==null
?请求CreateResponse(HttpStatusCode.BadRequest,“你是谁?”)
:req.CreateResponse(HttpStatusCode.OK,$“你好{person.FirstName}!”);
}

如果将HttpTrigger函数配置为接受JSON POST请求,则可以按如下方式绑定到自定义模型类型:

using System.Net;

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

public static async Task<HttpResponseMessage> Run(Person person, HttpRequestMessage req)
{
    return person.FirstName == null
        ? req.CreateResponse(HttpStatusCode.BadRequest, "Who are you?")
        : req.CreateResponse(HttpStatusCode.OK, $"Hello {person.FirstName}!");
}
使用System.Net;
公共阶层人士
{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共整数{get;set;}
}
公共静态异步任务运行(个人,HttpRequestMessage请求)
{
return person.FirstName==null
?请求CreateResponse(HttpStatusCode.BadRequest,“你是谁?”)
:req.CreateResponse(HttpStatusCode.OK,$“你好{person.FirstName}!”);
}