请耐心等待,不要将其标记为重复:使用Rally REST API,如何获取用户故事的非API(网站(URL?
我希望能够为用户故事生成链接。像这样:https://rally1.rallydev.com/#/-/detail/userstory/*********与此相反:https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/88502329352
该链接将集成到另一个应用程序中,供经理查看用户故事。我确实阅读了有关getDetailUrl((方法的信息,但就我而言,我通过解析电子邮件并将其链接到Slack中的通知服务来创建用户故事。我知道 formattedID 和 (_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);
}
}
.NET 工具包中没有用于执行此操作的方法,但创建起来很容易。
格式是这样的:
https://rally1.rallydev.com/#/detail/<type>/<objectid>
只需填写类型(层次结构需求转换为用户故事,但所有其他类型都与 wsapi 类型相同(和您刚刚创建的对象的对象 id。
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"];
您可以指定要在创建的对象上返回的获取字段,这样您就不必重新查询它。