如何在Azure函数中对HTTP POST执行模型绑定?
我希望将我的HTTP POST参数绑定到Azure函数,并希望确保不受信任的数据正确映射到我的模型类 现在我使用的是mime类型的如何在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
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}!”);
}