Rally Web Services API:如何获取用户故事的URL链接? (getDetailUrl()方法)

时间:2017-03-16 14:25:02

标签: web-services rally

请耐心等待,不要将此标记为重复:Using the Rally REST API, how can I get the non-API (website) URL for a user story?

我希望能够为用户素材生成链接。 这样的事情:https://rally1.rallydev.com/#/-/detail/userstory/ ********* 与此相反:https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/88502329352

该链接将集成到另一个应用程序中,供管理人员查看用户故事。 我确实读过有关getDetailUrl()方法的内容,但在我的情况下,我通过解析电子邮件并将其链接到Slack中的通知服务来创建用户故事。 我知道formatID和(_ref),但我必须再次查询它,并且我通过循环创建批量用户。我需要实际的网站链接到用户故事。

以下是我的示例代码:

public void CreateUserStory(string workspace, string project, string userstoryName){

//authenticate with Rally
this.EnsureRallyIsAuthenticated();

//DynamicJsonObject for HierarchicalRequirement
DynamicJsonObject toCreate = new DynamicJsonObject();
toCreate[RallyConstant.WorkSpace] = workspace;
toCreate[RallyConstant.Project] = project;
toCreate[RallyConstant.Name] = userstoryName;

 try
 {
    //Create the User Story Here
    CreateResult createUserStory = _api.Create(RallyConstant.HierarchicalRequirement, toCreate);
    Console.WriteLine("Created Userstory: " + "URL LINK GOES HERE");
 }
 catch (WebException e)
 {
    Console.WriteLine(e.Message);
 }
}

1 个答案:

答案 0 :(得分:1)

我们在.NET工具包中没有这样做的方法,但它很容易创建。

格式如下:

https://rally1.rallydev.com/#/detail/<type>/<objectid>

只需填写类型(hierarchicalrequirement变为userstory,但所有其他变量与wsapi类型相同)和来自刚刚创建的对象的objectid。

var parameters = new NameValueCollection();
parameters["fetch"] = "FormattedID";
var toCreate = new DynamicJsonObject();
var createResult = restApi.create("hierarchicalrequirement", toCreate, parameters); 
var type = Ref.getTypeFromRef(createResult.Reference);
var objectID = Ref.getOidFromRef(createResult.Reference);
var formattedID = createResult.Object["FormattedID"];

您可以指定要在创建的对象上返回的提取字段,这样您就不必重新查询它。