【DAYU数据服务】默认分页与自定义分页的区别
1、 默认分页
(1) 创建API时,取数方式为配置方式
对于配置方式取数的API来说,当用户配置了API之后,DLM服务会在用户调试/调用的时候生成相应的SQL进行取数,其分页方式为默认分页。例如,如果将API的请求参数、返回参数、排序参数按照以下配置的话:
DLM服务生成的SQL为:
SELECT c,x FROM tableName Where c = {p} AND x = {h} ORDER BY c,x
(其中p,h为用户传入的p,h参数的实际值)
除此之后DLM针对配置方式的API还会加上默认的分页,从而转变成以下SQL:
SELECT c,x FROM tableName Where c = {p} AND x = {h} ORDER BY c,x limit {pageNum} offset {offsetValue }
(其中pageNum, offsetValue为基于用户传入参数的实际值)
如果用户未定义pageNum参数的话,DLM将默认给这个API设置一个pageNum参数。offsetValue是基于用户传入的pageSize参数计算得到的,同样如果用户未定义pagSize参数的话,DLM服务将默认给这个API设置一个pageSize参数。
用户未定义分页参数(page_num、page_size)时的调试页面
用户定义了分页参数(page_num、page_size)时的调试页面
如果用户是通过SDK、Postman或者其他方式调用时,如果不传page_num和page_size的值的话(page_size和page_num的位置都位于QUERY中),则默认page_num = 1并且page_size=100.(注意:取数方式为配置的API page_size最大支持500,取数方式为脚本的API page_size最大支持2000. )
(2) 创建API时,取数方式为脚本方式
创建API时,如果取数方式为脚本方式的话,其分页的方式可选择默认分页或者自定义分页,如下图所示:
默认分页是指用户在创建API时输入了SQL,DLM服务会自动基于SQL外层包装分页逻辑(注意:DLI、HIVE数据源不支持默认方式)。例如用户输入的SQL脚本为SELECT * FROM tableName, DLM服务在处理调试或者调用时,将自动在用户SQL外层包装分页逻辑从而变成以下SQL:
SELECT * FROM (SELECT * FROM tableName) LIMIT {pageSize} OFFSET {offsetValue }
(其中pageNum, offsetValue为基于用户传入参数的实际值,pageNum和pageSize相关说明请查看第一节内容)
自定义分页是指用户在创建API时,DLM服务将不对用户SQL进行处理,分页逻辑完全由用户定义。如果用户需要创建分页的API的话,则可以在写SQL时加入分页逻辑。例如:
SELECT * FROM tableName LIMIT {pageSize} OFFSET {offsetValue }
(其中pageNum, offsetValue为基于用户传入参数的实际值,pageNum和pageSize相关说明请查看第一节)
- 点赞
- 收藏
- 关注作者
评论(0)