如何使用.net中的jira rest api获取项目特定的jira问题?

时间:2013-09-24 04:10:16

标签: c# json api rest

我有一个要求,我需要在jira中获取特定项目的所有问题,所以为此我创建了一个控制台应用程序,其中有一个休息客户端类,我使用它进行GET请求调用和测试目的rest api url是

https://jira.atlassian.com/rest/api/latest/issue/JRA-9

使用这个url我创建一个HttpWebRequest并以json格式化字符串获取响应。现在这个json字符串包含所有特定于问题的信息,但我的实际需求是获取所有项目特定的问题。

我试图找出是否有任何项目特定的URL用于测试目的,我从哪里获得json回复并找到http://kelpie9:8081/rest/api/2/search?jql=project=QA+order+by+duedate&fields=id,key但是为此我得到“远程名称无法解析:'kelpie9 '“错误。

你能帮帮我吗? `

1 个答案:

答案 0 :(得分:6)

JIRA的REST API目前似乎不支持与search API分开的任何基于project的查询。

您可以使用JQL在搜索中指定特定项目。鉴于您了解项目(例如“JRA-9”中的“JRA”),您可以快速搜索所有问题:

工作结果:https://jira.atlassian.com/rest/api/latest/search?jql=project=JRA

一个重要的注意事项是结果返回实际总数与实际返回的结果:

"startAt":0,"maxResults":50,"total":30177

您可以向请求添加查询字符串变量以获得更多(或更少)结果。您还可以控制与要检索的问题相关的字段:https://jira.atlassian.com/rest/api/latest/search?jql=project=JRA&startAt=75&maxResults=75(请求的越多,速度越慢,并且可能不会很高兴使用大数字来访问其公共服务器)。

您甚至可以POST表示查询的JSON对象(从链接的search文档略微调整):

{"jql":"project = JRA","startAt":75,"maxResults":75,"fields":["id","key"]}

有趣的是,作为JQL的一部分,您可以按任何字段对结果进行排序。只需在项目名称中添加“按ID排序”,如查询字符串中的“jql = JRA + order + by + id”或"jql": "project = JRA order by id" ed JSON正文中的POST


注意:以上是真实问题的实际答案。但是,字面问题是“无法解析远程名称:'kelpie9'错误的原因。

他们的文档显示kelpie9作为内部测试的示例服务器名称,在端口8081上运行。您的计算机不知道名为kelpie9的服务器/计算机,因为它不公开存在。将kelpie9替换为JIRA服务器主机名在内部的任何内容,并8081替换它使用的任何端口(如果在Intranet站点上查看JIRA时没有看到,请将其删除,这意味着端口80为http和端口443 for https)。例如,许多公司以"https://jira/"运行它。您可以使用https://jira/rest/api/2/search?jql=project=QA+order+by+duedate&fields=id,key替换示例链接。