我正在尝试使用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,timestamp)。或者至少一个请求将返回所有缺陷,其中每个缺陷条目将包含其历史记录中的最后一个时间戳。我想我可以得到每个缺陷的所有时间戳的所有缺陷列表,但我想只是最后一个时间戳。获取时间戳历史记录中的最后一个节点并不起作用。时间戳历史似乎没有被订购。对于这样的请求,似乎需要某种最大函数。
有人能指出我正确的方向或使用ClearQuest OSLC CM REST API判断我想要的是不可能的吗?
答案 0 :(得分: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)