根据documentation,要查询一条记录,您必须使用这个端点/<module>/:recordId
,但是如果我想从给定模块获取所有记录,该怎么办呢?我找不到任何与此相关的文档。
我尝试使用/<module>/filter
来设置json参数,如下所示:
{
"max-num": "-1",
"offset": "0",
"order-by": "date-entered",
"favorites": false,
"my-items": false
}
但只返回20条记录?
当然,我尝试用大量的数字定制"max-num"
,但仍然返回20条记录。
我需要帮助
发布于 2018-06-14 02:11:03
选项的名称是max_num
(包含下划线字符),而不是max-num
。
但是,在服务器端还有另一个限制,如果它的值太高,它将否决您的max_num
。默认的服务器端最大限制是1000,但是可以在配置中通过将$sugar_config['max_record_fetch_size']
设置为所需的数字来增加该限制。
如果你想确保你得到所有的记录,检查响应中的next_offset
通常是个好主意。只要它不是-1
,就会有比返回的记录更多的记录。在这种情况下,您应该发送另一个请求,在请求中使用next_offset
的值作为offset
,以获取记录的下一个“页面”。
笔记
fields
数组。否则,当检索大量records.$sugar_config['max_record_fetch_size']
时,可能会浪费大量时间/带宽/内存,例如,在列表视图中使用"select all“可以选择多少条记录。分页示例
在下面的示例中,我们将从服务器获取所有记录,每次请求1000条记录。对于这个例子,让我们假设服务器总共有2341条记录。
我们请求1000条记录,从偏移量0
开始,这是第一个可用的记录:
请求#1
{
offset: 0,
max_num: 1000
}
注意:如果未指定偏移量,则假定为0。
来自服务器的响应#1
{
next_offset: 1000,
records: [array of 1000 records]
}
我们收到响应#1中的前1000条记录(偏移量0到999),正如next_offset
中指定的那样,我们尚未获得的第一条记录的偏移量为1000
因此,我们再次请求1000条记录,从偏移1000处的记录开始:
请求#2
{
offset: 1000,
max_num: 1000
}
来自服务器的响应#2
{
next_offset: 2000,
records: [array of 1000 records]
}
我们收到接下来的1000条记录(偏移量1000到1999)在响应#2中,我们不使用的第一条记录的偏移量是2000
,如next_offset
中所指定的
因此,我们再次请求1000条记录,从偏移2000处的记录开始:
请求#3
{
offset: 2000,
max_num: 1000
}
服务器响应#3
{
next_offset: -1,
records: [array of 341 records]
}
在响应#3中,我们收到341条记录(偏移量2000到2340)和一个带有-1
的next_offset
,表明没有更多的记录。这意味着我们现在已经收到了所有1000 + 1000 + 341 = 2341条可用记录。
结果概述:
______________________________
| | \ \
| | | \
| "Page 1" | |__ 1000 records |
| records at offset 0..999 | | |
| | | |
|______________________________| / |
| | \ |
| | | |__ all 2341 records
| "Page 2" | |__ 1000 records |
| records at offset 1000..1999 | | |
| | | |
|______________________________| / |
| | \ |
| "Page 3" | |__ 341 records |
| records at offset 2000..2340 | | /
|______________________________| / /
https://stackoverflow.com/questions/50838250
复制相似问题