如何使 Google 端点 API 的限制为空
How to Make the Limit null for Google Endpoint API
public CollectionResponse<Eateries> list(@Nullable @Named("cursor") String cursor, @Nullable @Named("limit") Integer limit) {
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
Query<Eateries> query = ofy().load().type(Eateries.class).limit(limit);
以上是从端点 api 获取列表的代码片段。
我正在尝试将限制设置为空,以便使用以下方法检索 DataStore 服务器上的所有条目:
List<Eateries> eateries = myApiService.list().set("limit", null).execute().getItems();
然而,它仍然将其限制为 DEFAULT_LIST_LIMIT 设置的任何值。
- 如何将限制设置为空,以便一次性获取所有条目?
谁能给我解释一下下面这行是干什么的:
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
事实证明,如果 limit 为 null,此行会将 limit 设置为 DEFAULT_LIST_LIMIT 的值。
我尝试将 DEFAULT_LIST_LIMIT 设置为 0,这样 limit 就会变为 0,这实际上意味着在以下情况下没有限制:
ofy().load().type(Eateries.class).limit(limit);
然而它仍然返回一个错误,说块大小必须大于 0。
所以我或多或少地创建了我自己的 ApiMethod,它完全忽略了完全设置限制。
这会做你想做的事:
public CollectionResponse<Eateries> list(@Nullable @Named("cursor") String cursor, @Nullable @Named("limit") Integer limit) {
Query<Eateries> query = ofy().load().type(Eateries.class);
if (limit != null) {
query.limit(limit);
}
public CollectionResponse<Eateries> list(@Nullable @Named("cursor") String cursor, @Nullable @Named("limit") Integer limit) {
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
Query<Eateries> query = ofy().load().type(Eateries.class).limit(limit);
以上是从端点 api 获取列表的代码片段。
我正在尝试将限制设置为空,以便使用以下方法检索 DataStore 服务器上的所有条目:
List<Eateries> eateries = myApiService.list().set("limit", null).execute().getItems();
然而,它仍然将其限制为 DEFAULT_LIST_LIMIT 设置的任何值。
- 如何将限制设置为空,以便一次性获取所有条目?
谁能给我解释一下下面这行是干什么的:
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
事实证明,如果 limit 为 null,此行会将 limit 设置为 DEFAULT_LIST_LIMIT 的值。
我尝试将 DEFAULT_LIST_LIMIT 设置为 0,这样 limit 就会变为 0,这实际上意味着在以下情况下没有限制:
ofy().load().type(Eateries.class).limit(limit);
然而它仍然返回一个错误,说块大小必须大于 0。
所以我或多或少地创建了我自己的 ApiMethod,它完全忽略了完全设置限制。
这会做你想做的事:
public CollectionResponse<Eateries> list(@Nullable @Named("cursor") String cursor, @Nullable @Named("limit") Integer limit) {
Query<Eateries> query = ofy().load().type(Eateries.class);
if (limit != null) {
query.limit(limit);
}