如何将 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 的代码片段,用于获取列表。

我正在尝试将限制设置为 null,以便使用以下方法检索数据存储服务器上的所有条目:

        List<Eateries> eateries = myApiService.list().set("limit", null).execute().getItems();

但是,它一直将其限制为DEFAULT_LIST_LIMIT设置的任何值。

  1. 如何将限制设置为 null,以便一次性获取所有条目?
  2. 有人可以向我解释以下行在做什么吗:

        limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
    

这将执行您想要的操作:

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);
    }
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;

事实证明,如果限制为空,则此行将限制设置为 DEFAULT_LIST_LIMIT 的值。

我尝试将DEFAULT_LIST_LIMIT设置为 0,以便限制为 0,这实际上意味着在以下情况下使用时没有限制:

ofy().load().type(Eateries.class).limit(limit);

但是,它仍然返回一个错误,说有关块大小的内容必须大于 0。

所以我或多或少地创建了自己的 ApiMethod,它完全忽略了完全设置限制。

最新更新