呼叫反弹API 2.0版不返回一致的结果(Call to Rally API v2.0 not re

2019-10-20 05:53发布

我们正在尝试使用拉力REST API 2.0版从拉力提取数据,并把它变成一个本地数据库,用于进一步的内部分析。 起初,我拨打这个电话取回JSON与所有我想通过枚举项目:

https://rally1.rallydev.com/slm/webservice/v2.0/workspace/17200849689

而在JSON我回来

...
"Projects":{
         "_rallyAPIMajor":"2",
         "_rallyAPIMinor":"0",
         "_ref":"https://rally1.rallydev.com/slm/webservice/v2.0/Workspace/17200849689/Projects",
         "_type":"Project",
         "Count":36
      },
...

因此,我的假设是应该有36个项目为我办理,我可以通过上面包括引用访问。

但是,我随后让使用以上网址和一个附加条款的OrderBy一个电话,开始基于内容索引和页面大小。 实际上... / 17200849689 /项目?的OrderBy = CreationDate&开始= 1&页大小= 20

问题是,我不回去20的记录。 我得到16.有点好像开始应该是从零开始的(这似乎是它会解释为什么我会得到16条记录为20的页面大小),但如果我调用上面开始= 0(这是不什么API参考指出反正),我仍然只能拿回16条。

此外,从通话所产生的JSON与记录计数不同意。 我把它恢复。 这表明共有56条记录,而不是36,我走了,手通过网站统计的项目数,并在36到达为好。

{
   "QueryResult":{
      "_rallyAPIMajor":"2",
      "_rallyAPIMinor":"0",
      "Errors":[

      ],
      "Warnings":[

      ],
      "TotalResultCount":56,
      "StartIndex":1,
      "PageSize":20,
...

我误解了如何启动和在我的示例页面大小的工作电话? 预先感谢任何输入/建议!

Answer 1:

用于查询的起始索引从1开始,缺省值为1实施例:开始= 1

最大页面大小是200默认页面大小为20尝试用页面大小200的端点而不指示开始,例如

https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12345/projects?pagesize=200

其他潜在因素:

  • 您的权限。 什么权限级别该用户是否拥有,例如管理员,普通用户?
  • 封闭的项目没有被WS API返回。 如果不滤除UI封闭的项目,您将在UI显示比WS API返回更多的项目。

与封闭的项目的问题是如下:A项目查询(State = Closed)将返回0的结果:

https://rally1.rallydev.com/slm/webservice/v2.0/project?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12345&query=(State%20%3D%20Closed)

但此端点:

https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12345/projects

将返回已结束的项目,如果用户有权访问它们。 这取决于时机:如果用户被赋予访问项目,而这是开放的,它被关闭后记,该workspace/12345/projects端点有望重返打开和关闭项目的数据。 如果一个项目是用户对各种项目的访问在一个给定的工作区之前被设置关闭,这个项目甚至没有出现在UI授予给它的用户访问。 但是, workspace/12345/projects终点将展示类似于你注意到的一个差异。 该totalresultcount将显示在工作区中的项目总数,但数据(returnted项目JSON对象的数量)将依赖于实际的一些项目,以用户具有访问权限。



文章来源: Call to Rally API v2.0 not returning consistent results
标签: json rest rally