使用Rally Java Rest API,我如何获得DirectChildrenCount?

时间:2013-07-09 22:41:30

标签: java api rest rally

我似乎能够获得除此之外的所有其他属性。当我查询这个属性时,我在控制台中得到DirectChildrenCount:null。

1 个答案:

答案 0 :(得分:0)

假设您获取DirectChildrenCount,接下来要验证的是您正在使用的Java Rally REST的版本以及您在代码中指定的WS API版本。

这是打印出DirectChildrenCount的代码示例。

它使用了rally-rest-api-1.0.7.jar,它与最新的WS API v2.0一起使用

如果您使用的是rally-rest-api-1.0.6.jar,它仍然可以在代码中正确设置WS API版本,例如:

String wsapiVersion = "1.43";

如果您未指定版本或指定低于1.39的版本,则在使用rally-rest-api-1.0.6.jar时将返回DirectChildrenCount:null。 DirectChildrenCount在1.39中引入。

如果您使用的是rally-rest-api-1.0.7.jar,它默认为WS API的v2.0,因此下面的代码将起作用,即使未在WS API版本中设置,也会返回DirectChildrenCount代码。

public static void main(String[] args) throws URISyntaxException, IOException {

    // Create and configure a new instance of RallyRestApi

    String host = "https://rally1.rallydev.com";
    String username = "user@domain.com";
    String password = "secret";
    String wsapiVersion = "v2.0";
        String workspaceRef = "/workspace/1111";
    String projectRef = "/project/2222"; 
    String applicationName = "DirectChildrenCount";


        RallyRestApi restApi = new RallyRestApi(
                new URI(host),
                username,
                password);
        restApi.setWsapiVersion(wsapiVersion);
        restApi.setApplicationName(applicationName);   


        QueryRequest storyRequest = new QueryRequest("HierarchicalRequirement");
        storyRequest.setFetch(new Fetch("Name","DirectChildrenCount"));
        storyRequest.setWorkspace(workspaceRef);
        storyRequest.setQueryFilter(new QueryFilter("FormattedID", "=", "US16"));

        QueryResponse storyQueryResponse = restApi.query(storyRequest);
        JsonObject storyJsonObject = storyQueryResponse.getResults().get(0).getAsJsonObject();
        System.out.println(storyJsonObject.get("Name") + " DirectChildrenCount: " + storyJsonObject.get("DirectChildrenCount"));
    }