我的GAE Cloud端点中有以下Api方法:
@ApiMethod(name = "getConferences", path = "get_conferences", httpMethod = ApiMethod.HttpMethod.POST)
public List<Conference> getConferences(@Named("userId") Long userId) {
List<Conference> conferenceList = ofy().load().type(Conference.class)
.ancestor(Key.create(User.class, userId))
.order("-createdDate").list();
return conferenceList;
}
它运行良好,并为我返回给定用户按日期排序desc的所有会议。 Conference
类具有以下属性以指定它具有User
父级:
@Parent
private Key<User> userKey;
我的问题是,如何更改上述方法一次只返回50个结果(会议),还能够指定一个类似nextPageToken的参数来给我下50个结果?
我已经在其他API方法中看到了这一点,但似乎无法找到适用的GAE或Cloud Endpoints的良好示例。
答案 0 :(得分:1)
List<Conference>
。com.google.api.server.spi.response.CollectionResponse<Conference>
@Named("nextPageToken") String pageToken
。pageToken != null
,.order()
之后您需要链接.startAt(Cursor.fromWebSafeString(pageToken))
.limit(50)
,因为您希望它是您的页面大小。.list()
使用.iterator()
,而getStartCursor()
方法。使用this和迭代器构造CollectionResponse
。有关如何使用游标的非终结点示例,另请参阅this page。其余的应该是微不足道的。