OneService API 分页是一种管理大量数据流的常见技术。本文将为您介绍在OneService API 查询中实现分页的方法,以及如何调用开启了分页的 API。
说明
进行 API 进行分页设置时,您需先准备以下相关内容:
脚本式 API 创建完成后,您便可以选取对应的逻辑表进行 API 的开发。
下拉选择已创建成功的逻辑表,脚本式创建 API,支持选择同源多张逻辑表,最多选择 10 张。
并在 SQL 编辑界面,输入业务实际的查询 SQL 语句。
说明
在 API 设计中,您可以在 SQL 查询语句中使用LIMIT子句来添加分页功能。其中LIMIT子句可能会涉及以下参数:offset 、pageNum和pageSize
(pageNum - 1) * pageSize;下面是一个样例,展示了如何在 SQL 查询语句中配置分页:
SELECT * FROM query LIMIT #{offset}, #{pageSize}
全屏编辑时示例如下:
SQL 编辑完成后,您可单击“解析”按钮,来自动解析脚本的请求参数信息;单击“运行”按钮,查询成功后,也可自动填充 API 返回参数信息。
根据实际场景配置 API 其余高级配置信息。详见4.1 脚本式。
脚本式 API SQL 逻辑和参数配置完成后,您可进行后续的 API 测试和发布操作。详见6 测试 API、7 发布API。
向导式 API 创建完成后,您便可以选取对应的逻辑表进行 API 的开发。
向导式 API 参数配置和测试完成后,您可进行后续的 API 发布操作。详见7 发布API。
如果需要在 API 返回结果中显示查询表的总计数,需要在请求体Option中新增配置项,如下所示
{ "Id": 6, "Val": 0, "Val_": "{\"with_total\": true}" }
下面是一个请求的curl命令样例,它请求了页码 1 和每页 10 条记录,并要求在返回结果中增加 TotalCnt 来显示返回 SQL 查询的总记录数:
curl --location 'http://xx.xx.xx.xx/invoker_engine/query_with_params' \ --header 'user: bytedance' \ --header 'env: ONLINE' \ --header 'Content-Type: application/json' \ --data '{ "ApiID": "170113520485xxxxxx", "Option": [ { "Id": 100, "Val": 0, "Val_": "$DPS_TOKEN" }, { "Id": 6, "Val": 0, "Val_": "{\"with_total\": true}" } ], "Params": { "product_click_pay_cnt_ratio":0, "pageNum": 1, "pageSize": 10 } }'
在返回结果中,数据会按分页要求返回,并会新增字段 TotalCnt 标明查询表的总数,如下所示: