如何创建可以在主体上执行模型绑定的POST Azure函数?

时间:2019-03-07 16:18:10

标签: post azure-functions

使用GET,我可以在函数定义中放置一个参数:

[FunctionName("GetKittenById")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", Route = "GetKittenById/{kittenId}")] HttpRequest req,
    string kittenId,
    ILogger log) { ... }

我想对POST做同样的事情。但是,如果我添加参数并执行此操作:

[FunctionName("CreateKitten")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "POST", Route = "CreateKitten")] HttpRequest req,
    Kitten kitten,
    ILogger log) { ... }

然后我的函数在进行POST时引发错误。

  

[07/03/2019 16:17:00]发生未处理的主机错误。
  [07/03/2019 16:17:00] Microsoft.Azure.WebJobs.Host:
  无法从Azure WebJobs SDK调用“ CreateKitten”。是吗   缺少Azure WebJobs SDK属性?。

我在Google上找不到如何执行此操作。我假定存在内置绑定,因为执行GET时可以指定是否要JSON或XML。我想反过来做同样的事情,并让框架处理,以防他们发布JSON或XML。

有没有一种方法可以自动执行此操作,或者我必须开始在HttpRequest中浏览并反序列化内容?


我发现您可以将HttpRequest req替换为Kitten kitten,它将进行模型绑定,但是我需要保持对HttpRequest的访问权限,以便能够读取一些自定义身份验证标头。

有没有办法让我自己做到这两个?检查它们是否发送了JSON或XML并编写我自己的代码来进行模型绑定是一件很痛苦的事情,以便我可以检索http上下文。

0 个答案:

没有答案