
一页成功返回,不表示历史已经完整
查看币圈交易所API文档时,先辨认响应是一条记录还是一个分页列表。如果只保存第一次返回的列表,就可能把默认展示的一页误称为全部历史。本文以Coinbase Exchange公开分页说明作文档阅读例子,不推荐平台、不接入私人账户,也不执行任何交易。
该文档说明,返回数组的REST请求使用游标分页,交易、成交与订单等接口默认返回较新的记录,后续页面需要根据已返回数据指定方向。这只能说明该组文档的分页约定,不能推导其他平台采用相同规则;具体记录范围、筛选条件和权限仍要读对应接口说明。
before和after不能按中文直觉翻译
在这份Exchange文档中,before对应较新的页面,after对应较旧的页面;前者关联当前页首项,后者关联末项。页面位置上的前后,不是自然时间里之前和之后的直接翻译。因此,整理更早的历史记录时,不能只凭参数名字猜方向。
文档把后续可用游标放在CB-BEFORE和CB-AFTER响应头中,并要求后续请求使用这些返回值。作为核对方法,可以让每页记录保留取得时的方向与返回游标,检查下一页实际接续的是哪一侧;不要根据某个示例编号自行加减,再假定它仍代表正确的相邻页面。

保存正文时别遗漏响应头
MDN将HTTP头描述为请求或响应携带附加信息的部分,响应头与响应正文并不是同一个内容区域。由此可见,仅导出正文中的JSON数组,可能没有保留翻页所需的头字段。记录列表可以正常显示,却仍缺少解释其来源页面的线索。
MDN还说明,HTTP字段名不区分大小写,HTTP/2及以上在开发工具里显示为小写。核对时应识别CB-AFTER与cb-after可能是同一字段名,但不要把这条规则外推到游标值本身。字段名归一化与修改字段内容是两件事,返回值应按接口约定原样解释。
把结果核对和完整性结论分开
作为原创交接清单,可记录接口文档版本、查询范围、请求时间、翻页方向、返回游标、每页记录数及异常说明,再按该接口定义的记录标识检查重复。若发现相邻页重复、方向变化或请求失败,应先留下异常,不能静默拼接后仍把结果标成连续完整。
缺少预期响应头时,无法直接得出没有更多记录的结论;达到某一页的数量上限,也不等于已经取完历史。是否到达终点还要按具体接口约定判断。本文没有实际采集账户资料、测试访问权限或核算全量交易记录;游标和日志帮助复核流程,但单靠它们不能保证历史数据绝无遗漏。