在Rally Rest API中使用Java设置Getrequest的页面大小限制

问题描述

我的问题是我正在尝试获取与发行版相关的所有用户故事,我为类型release创建了查询请求,并获得了对工作产品的引用。

所以我从查询响应“ https://rally1.rallydev.com/slm/webservice/v2.0/Release/12345678/WorkProducts”中得到了类似的信息 现在,我在“获取请求”中使用它来获取与发行版相关的所有用户案例。 由于页面大小为20,因此响应仅提供20个用户案例。 有没有一种方法可以增加获取请求的页面大小。

代码是这样的:

QueryRequest iterationRequest = new QueryRequest("release");
iterationRequest.setFetch(new Fetch("Name","Workspace","WorkProducts","Feature"));
iterationRequest.setWorkspace("/workspace/12345678");
iterationRequest.setProject("/project/4567890");
iterationRequest.setPageSize(200);
iterationRequest.setQueryFilter(new QueryFilter("Name","=",Release));
QueryResponse iterationQueryResponse = restApi.query(iterationRequest);
JsonArray iterationQueryResults = iterationQueryResponse.getResults();
JsonElement iterationQueryElement = iterationQueryResults.get(0);
JsonObject iterationQueryObject = iterationQueryElement.getAsJsonObject();
JsonObject workprodobj = iterationQueryObject.get("WorkProducts").getAsJsonObject();
String workprodref = workprodobj.get("_ref").getAsstring();
System.out.println("workprodref :" + workprodref);

GetRequest getRequest = new GetRequest(workprodref);
getRequest.setFetch(new Fetch("FormattedID"));
GetResponse getResponse = restApi.get(getRequest);

The response output is like this 
{"QueryResult": {"_rallyAPIMajor": "2","_rallyAPIMinor": "0","Errors": [],"TotalResultCount": 120,"StartIndex": 1,"PageSize": 20,"Results": [{"_rallyAPIMajor": "2","_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/123456789","_refObjectUUID": "xxxxxx","_objectVersion": "1","_refObjectName": "obj name removed masked","FormattedID": "US123456","DirectChildrenCount": 0,} .....

我们可以将getrequest的页面大小从20更改为200吗?

解决方法

GetRequest 扩展了 Request,它具有方法 addParam(String,String),可用于将获取参数传递到编码的 URL,例如设置页面大小。

getRequest.addParam("pagesize","200")

参考:https://github.com/RallyTools/RallyRestToolkitForJava/blob/542afa16ea44c9c64cebb0299500dcbbb50b6d7d/src/main/java/com/rallydev/rest/request/Request.java#L54