如何使谷歌端点API的限制为空

如何使谷歌端点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获取列表的代码片段。如何使谷歌端点API的限制为空

我试图将限制设置为空,这样的数据存储服务器上的所有参赛作品将通过使用下面的检索:

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

然而,窗台保持它限制了任何的DEFAULT_LIST_LIMIT是价值设置。

  1. 如何将限制设置为空,以便我可以一次性获取所有条目?
  2. 有人能向我解释什么,下面一行是这样做的:

    limit = limit == null ? DEFAULT_LIST_LIMIT : limit; 
    
+0

我刚刚结束了创建我自己的APIMethod为编辑此自动生成一个耗费太多的时间。 – Rafiq07

这会做你想要什么:

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; 

事实证明,如果限制为null,该行设置的限制DEFAULT_LIST_LIMIT的价值。

我试着设置DEFAULT_LIST_LIMIT为0,这样在使用时,该限制将被0这实际上意味着没有限制:

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

但是它仍然有一个错误回来说一些关于数据块大小必须是大于0.

因此,我已经或多或少地创建了自己的ApiMethod,它完全忽略了完全限制的设置。