Asp.net web api 使用ASP.NET WebAPI使用Atlassian Webhook?

Asp.net web api 使用ASP.NET WebAPI使用Atlassian Webhook?,asp.net-web-api,jira,webhooks,Asp.net Web Api,Jira,Webhooks,我的任务是编写一个服务,该服务将接受来自JIRA发送的Atlassian Webhook的HTTP POST数据。我想在4.0.NET框架中使用WebAPI使用该服务,我想知道如何做到这一点。我找到了这个资源,它揭示了POST数据的格式: 我认为我可以编写一个WebAPI“Post”方法,将输入作为字典,但我希望映射到一个定义良好的对象,而不是一个goo字典 我看到有一个名为Atlassian.SDK的NuGet包,“包含与Atlassian JIRA交互的实用程序”。然而,看起来API更倾向于

我的任务是编写一个服务,该服务将接受来自JIRA发送的Atlassian Webhook的HTTP POST数据。我想在4.0.NET框架中使用WebAPI使用该服务,我想知道如何做到这一点。我找到了这个资源,它揭示了POST数据的格式:

我认为我可以编写一个WebAPI“Post”方法,将输入作为
字典
,但我希望映射到一个定义良好的对象,而不是一个goo字典

我看到有一个名为Atlassian.SDK的NuGet包,“包含与Atlassian JIRA交互的实用程序”。然而,看起来API更倾向于读取JIRA票据、创建和更新它们


Atlassian.SDK NuGet包是否允许使用Webhook以强类型方式发送的HTTP POST,而不是使用.NET字典解析JSON数据?Atlassian.SDK不支持Webhook场景。正如您所写的,它支持通过Linq到Jira扩展和类进行RESTAPI调用(查询和更新问题)

但是,我认为您不应该使用.NET字典手动解析JSON。我已经做了一些非常简单的步骤来在ApicController中生成强类型webhook结果

  • 我在(
    http://requestb.in/1g9lg8y1

  • 我用Web API创建了一个新的ASP.NET MVC应用程序,当我在浏览器中启动它时,它可以在
    http://localhost:18177/

  • 我在Jira中设置了两个指向这些地址的Webhook

  • 我在Jira中创建了一个新版本,在Requestb.in页面中,我将整个JSON内容复制到原始正文部分中的剪贴板中

  • 这里的要点是:我从这个JSON内容创建了自定义类。(你可以用任何你想要的工具来做这件事,例如。)我个人是用VisualStudio的WebEssentials扩展来做的。(
    Edit->Paste special->Paste JSON as class

  • 我将根重命名为
    JiraWebhookObject
    ,并将ValuesController的Post方法的签名修改为

    public void Post([FromBody]JiraWebhookObject value)
    
  • 最后,我修改了问题的摘要。由于更新了webhook,我在WebAPI控制器中得到了强类型结果。