0

我正在尝试使用 ClearQuest OSLC CM REST API 编写一个 http 请求来完成以下任务。我想要获得自指定时间以来已更新的 ClearQuest 缺陷的列表(以 XML 格式)。

到目前为止,我已经能够通过以下请求获取我感兴趣的特定缺陷系列的所有缺陷列表(我在这里使用示例基本 URL):

http://localhost:8080/oslc/cqrest/repo/7.0.0/db/SAMPL/record/?oslc_cm.query=Found_in_Product_Family="MyDefectFamily"&rcm.type=Defect

我还能够整理一个 http 请求,该请求返回一个完整的时间戳历史记录,如下所示:

http://localhost:8080/oslc/cqrest/repo/7.0.0/db/SAMPL/record/16777241-38577895?oslc_cm.properties=id,dbid,history{action_timestamp}

如果有人认为这里有帮助,我可以显示这两个请求的示例 xml 响应。

我似乎无法弄清楚如何编写一个请求,该请求将返回包含比 01/01/2014 00:00:00 更晚的时间戳的缺陷列表(id、dbid、时间戳)。或者至少是一个返回所有缺陷的请求,其中每个缺陷条目将包含其历史记录中的最后一个时间戳。我想我可以得到所有缺陷的列表以及每个缺陷的所有时间戳,但我只想要最后一个时间戳。获取时间戳历史中的最后一个节点不起作用。时间戳历史似乎没有排序。对于这样的请求,某种 max 函数似乎是必要的。

谁能指出我正确的方向或告诉我使用 ClearQuest OSLC CM REST API 是否不可能实现我想要的?

4

1 回答 1

0

这是我在 VB.NET 中使用的:

Dim asOfValue = asOf.ToString("'""'yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z""^^xsd:dateTime'")
Dim upToValue = upTo.ToString("'""'yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z""^^xsd:dateTime'")
Dim where = "cq:history{cq:action_timestamp>=" & asOfValue & " and cq:action_timestamp<=" & upToValue & "}"

Const prefix = "cq=<http://www.ibm.com/xmlns/prod/rational/clearquest/1.0/>"
uri.Query = String.Format("oslc.orderBy=dcterms:identifier&oslc.where={0}&oslc.select={1}&oslc.prefix={2}", where, select, prefix)
于 2014-10-01T17:03:58.933 回答