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 标明查询表的总数,如下所示: