And*_*ndy 5 jira webhooks asp.net-web-api
我的任务是编写一个服务,该服务将从JIRA发送的Atlassian Webhook接受HTTP POST数据。我想在4.0 .NET框架中使用WebAPI来使用该服务,我想知道如何做到这一点。我找到了发现POST数据格式的资源:JIRA Webhooks Overview。
我认为我可以编写一个WebAPI“ Post”方法,将输入作为接受Dictionary<string, object>,但是我希望映射到一个定义明确的对象,而不是Goo字典。
我看到有一个名为Atlassian.SDK的NuGet程序包,其中包含“用于与Atlassian JIRA交互的实用程序”。但是,似乎该API更适合于读取JIRA票证,创建和更新它们。
Atlassian.SDK NuGet包是否允许使用Webhook以强类型方式发送的HTTP POST,而不是使用.NET Dictionary解析JSON数据?
AFAIK Atlassian.SDK 不支持 Webhook 场景。正如您所写,它通过 Linq to Jira 扩展和类支持 REST API 调用(查询和更新问题)。
但是,我认为您不应该使用 .NET Dictionary 手动解析 JSON。我已经做了一些非常简单的步骤来在 ApiController 中生成强类型的 Webhook 结果。
我在Requestb.in(http://requestb.in/1g9lg8y1)中设置了一个临时请求容器
我使用 Web API 创建了一个新的 ASP.NET MVC 应用程序,当我在浏览器中启动它时,可以在http://localhost:18177/
我在 Jira 中设置了 2 个 webhooks 指向这些地址

我在 Jira 中创建了一个新问题,并在 Requestb.in 页面中将整个 JSON 内容复制到原始正文部分中的剪贴板中。
要点在这里:我从这个 JSON 内容创建了自定义类。(您可以使用任何您想要的工具来完成此操作,例如JSON2Sharp),我个人是使用 Visual Studio 的 Web Essentials 扩展来完成此操作。( Edit -> Paste special -> Paste JSON as Classes)
我将 root 重命名为JiraWebhookObject,并将 ValuesController 的 Post 方法的签名修改为
public void Post([FromBody]JiraWebhookObject value)
Run Code Online (Sandbox Code Playgroud)最后我修改了问题的摘要。由于更新了 Webhook,我在 Web API 控制器中获得了强类型结果。

| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |