我试图通过ID简单地"找到"RTC票证,但它告诉我404找不到。也许我应该用一些东西来代替_ggTXcJdTEeCznlnpJMXHdQ?或爵士乐或oslc或上下文或http://purl.org/dc/terms/?我不知道什么是占位符,也不知道我应该从文档中更改什么来针对我。
public static void GetTicket(string credentials)
{
string localhost = "my.host.com";
string WtId = "2494443"
string item = "https://" + localhost + ":9443/jazz/oslc/contexts/_ggTXcJdTEeCznlnpJMXHdQ/workitems?" +
"oslc.where=dcterms:identifier=%22" + WtId + "%22&" +
"oslc.properties=dcterms:title,dcterms:identifier&" +
"oslc.prefix=dcterms=%3Chttp://purl.org/dc/terms/%3E";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(item);
request.Accept = "application/json";
request.Headers.Add("Authorization", "Basic " + credentials);
WebResponse response = request.GetResponse();
// ... more stuff
}
您的代码来自您提到的文档的"查询功能"部分。
我确认,_ggTXcJdTEeCznlnpJMXHdQ
是示例的一部分,而不是期望在您自己的环境中工作的东西。
发现机制是关键:
客户端不应依赖特定的URL或对URL执行路径计算。相反,他们应该使用RTC提供的发现链。以下是找到变更管理功能的过程概述:
根文档在
https://<server>:<port>/<app>/rootservices
处公开
在典型的RTC测试台中,这是https://localhost:9443/jazz/rootservices
获取此文档并提取元素
oslc:ServiceProviderCatalog
的变更管理目录URL(由rdf:about
指向(获取此URL后面的文档。它包含指向包含实际服务描述的文档的
ServiceProvider
元素列表
在RTC的情况下,每个项目区域有一个ServiceProvider
元素。通常,应用程序会使用此元素的标题来允许用户在项目区域之间进行选择。获取元素
oslc:ServiceProvider
的属性rdf:about
所指向的服务文档
本文档包含对服务和操作的参考,如:
- 创建工厂来创建新的工作项
- 允许查询工作项的查询功能
- 用于创建和选择工作项的委派UI对话框,以及
- CLM过滤器,是对工作项的预定义查询
只有遵循此发现路径,才能获得用于工作项查询的实际URL。