0

我正在尝试弄清楚如何将 Google Cloud Endpoints 与分页一起使用。我只得到 10 个结果。我已将属性 shouldFetchNextItems 设置为 YES。此外,我的查询对象没有 nextToken 或 maxResults 属性。有一个带有 pageToken 的 GTLQueryCollectionProtocol 但我看不到它在哪里使用。

static GTLServiceOwnit *service = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    service = [[GTLServiceOwnit alloc] init];
    service.retryEnabled = YES;
    service.shouldFetchNextPages = YES;
});

NSError *error;

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];

GTLQueryOwnit *query = [GTLQueryOwnit queryForBrandList];

[service executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLOwnitBrandCollection *object, NSError *clouderror) {
   NSLog(@"counts: %d", [[object items] count]);
   ...

编辑:这是我在 python 中的后端:

class Brand(EndpointsModel):
    name = ndb.StringProperty(required=True)

@Brand.query_method(path='brand',
                    http_method='GET',
                    name='brand.list')
def brand_list(self, query):
    """Exposes an API endpoint to query for brands for the current user"""
    return query.order(Brand.name)

谢谢,

4

1 回答 1

1

查看文档中的分页示例。

为了将分页参数包含在您的 API 中,您需要将它们显式包含在您的方法中:

@Brand.query_method(query_fields=('limit', 'pageToken'),
                    path='brand',
                    http_method='GET',
                    name='brand.list')
def brand_list(self, query):
    """Exposes an API endpoint to query for brands for the current user"""
    return query.order(Brand.name)

查询限制的默认值为10。您可以更改它,但您应该设置一个合理的limit. 它是 中的limit_default字段query_method

于 2013-07-10T23:40:23.513 回答