Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 调用Rally API v2.0未返回一致的结果_Json_Rest_Rally - Fatal编程技术网

Json 调用Rally API v2.0未返回一致的结果

Json 调用Rally API v2.0未返回一致的结果,json,rest,rally,Json,Rest,Rally,我们正试图使用Rally REST API v2.0从Rally中提取数据,并将其导入本地数据库进行进一步的内部分析。最初,我打这个电话是为了获取JSON以及我想列举的所有项目: 在JSON中,我得到了回报 ... "Projects":{ "_rallyAPIMajor":"2", "_rallyAPIMinor":"0", "_ref":"https://rally1.rallydev.com/slm/webservice/v2.0/W

我们正试图使用Rally REST API v2.0从Rally中提取数据,并将其导入本地数据库进行进一步的内部分析。最初,我打这个电话是为了获取JSON以及我想列举的所有项目:

在JSON中,我得到了回报

...
"Projects":{
         "_rallyAPIMajor":"2",
         "_rallyAPIMinor":"0",
         "_ref":"https://rally1.rallydev.com/slm/webservice/v2.0/Workspace/17200849689/Projects",
         "_type":"Project",
         "Count":36
      },
...
因此,我的假设是应该有36个项目供我通过,我可以通过上述参考访问

但是,随后我使用上面的URL进行了调用,并根据内容附加了orderby子句、start index和pagesize。实际上…/17200849689/Projects?orderby=CreationDate&start=1&pagesize=20

问题是,我没有找回20张唱片。我得了16分。似乎start应该是基于零的(这似乎可以解释为什么我返回16条记录,页面大小为20),但是如果我调用上面的start=0(这不是API引用所指示的),我仍然只返回16条记录

此外,调用产生的JSON与记录计数不一致。我把这个拿回来。这表示56条记录,而不是36条。我已经通过网站亲自统计了项目的数量,也得到了36个

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

      ],
      "Warnings":[

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

在我的示例调用中,我是否误解了start和pagesize是如何工作的?提前感谢您的任何意见/建议

查询的开始索引从1开始。默认值为1。 示例:start=1

最大页面大小为200。 默认页面大小为20。 尝试pagesize为200但不指示开始的端点,例如

https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12345/projects?pagesize=200
其他潜在因素:

  • 您的权限。此用户具有什么权限级别,例如管理员、普通用户
  • WS-API不会返回已关闭的项目。若不过滤掉UI中已关闭的项目,那个么UI中显示的项目将比WS-API返回的项目多
已结束项目的问题如下: 项目查询
(状态=关闭)
将返回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将显示工作区中的项目总数,但数据(返回的项目json对象数)将取决于用户有权访问的实际项目数

另外,如果我用pagesize=36打电话,那么我会得到29条记录。如果我用pagesize=56打电话,我会找回我期待找回的36张唱片。谢谢。我通过自己的凭据访问它,而不是管理员。因此,关闭的项目(或我无法访问的项目)可以解释我所看到的计数差异。考虑到我可以访问的现有项目数量,只需将页面大小设置为56,然后在一个页面中返回所有项目,目前就可以了。我将测试打电话尝试获取所有56个项目,并期望在给定一些start值的情况下,我可能什么也得不到(或比我预期的少)。我只是想跟进并确认您的输入确实是所需的信息。虽然我的UserID访问了36个项目,但总记录数反映的记录比我看到的要多。当在项目列表中循环时,需要进行足够的调用以请求TotalRecordCount记录,以确保它们获得所有可用的记录(通过页面大小和开始使用的组合)。