调用v1/databases/{database_id}/query时Relation属性仅返回24条关联结果
问题结论
v1/databases/{database_id}/query 接口对relation类型属性的返回值存在默认截断规则,单个relation字段最多仅返回前24条关联项,该截断行为和接口本身的页面分页逻辑无关,官方公开文档未在该接口说明页明确标注此限制。
产品UX界面可展示全量关联数据,是因为前端内部额外实现了单属性的拉取逻辑,并非接口直接返回了全量数据。
全量关联项获取方案
- 不要依赖数据库查询接口返回的relation数组获取全量关联数据,该接口没有提供针对单属性内关联项的分页参数。
- 正确获取流程:
- 先调用
v1/databases/{database_id}/query拿到目标行对应的page ID,以及目标relation属性的property ID - 调用单属性查询接口
v1/pages/{page_id}/properties/{property_id}拉取关联数据,该接口支持属性级分页 - 若接口返回
has_more字段为true,将返回的next_cursor作为start_cursor参数循环发起请求,直到has_more为false,拼接所有返回结果即可拿到全部关联项
- 先调用
- 单属性查询接口单次最多返回100条关联项,返回结构示例如下:
{ "object": "list", "results": [ {"id": "zzz"}, {"id": "yyy"}, {"id": "xxx"} ], "next_cursor": "cursor_value", "has_more": true, "type": "relation", "relation": {} }
内容的提问来源于stack exchange,提问作者satnam
相关产品推荐
相关产品推荐

