RallyAPI:如何获取使用 .NET api 的项目的用户列表?

RallyAPI: How do I get a list of users for a project using the .NET api?

我正在尝试获取 Rally API 中每个项目的用户列表。似乎将项目 ID 放入请求中不会对结果产生任何限制。我似乎让每个人都订阅了。 'WorkSpace' 和 'Project' 似乎都不起作用。 (我真的很想获得每个项目的每个用户。我知道如何 return 一个项目列表,但用户是个问题)

这是我目前的情况:

        Rally.RestApi.Request userRequest = new Request("user");
        userRequest.Workspace = WebConfigurationManager.AppSettings["RallyAPIWorkspaceID"];
        userRequest.Project = "https://rally1.rallydev.com/slm/webservice/v2.0/project/XXXXXXXXX"; 
        userRequest.Query = new Query("");
        QueryResult queryUserResults = restApi.Query(userRequest);

        List<SelectListItem> AvailableUsers = new List<SelectListItem>();

        foreach (var result in queryUserResults.Results)
        {
            SelectListItem selectListItem = new SelectListItem();
            selectListItem.Text = result["DisplayName"];  // userName
            selectListItem.Value = result["_ref"]; // Reference
            AvailableUsers.Add(selectListItem);
        }

WS API 中的User 对象没有Project 或Workspace 属性,userRequest.Query = new Query("Project", Query.Operator.Equals, someProjectRef)userRequest.Project 不会帮助您限制请求。 也许您想查询 ProjectPermission object. ProjectPermission inherits User attribute (a reference to a user) from abstract UserPermission 对象。这并非特定于 Rally .NET 或任何其他语言工具包。

由于 ProjectPermission 查询不能被 Project 绑定,并且将 return 所有 ProjectPermission 对象,您将必须迭代结果并仅获取您感兴趣的那些。 与大多数 WSAPI 端点不同,ProjectPermissions 端点不接受任何查询过滤器。对 运行 来说,这可能是一个危险的查询,因为 this.For 工作区有成千上万的用户和数百个项目,点击这个端点最终可能会创建一个访问数十万行的数据库查询。