magic-api magic-api
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
  • 快速入门

    • 简介
    • 快速开始
    • 请求参数获取
    • 增删改查
    • 单表crud接口
    • 分页
      • 如何分页?
        • 自动分页
        • 手动分页
      • 自定义分页参数
      • 自定义分页JSON结果
      • 自定义分页参数获取
  • 基础教程

    • 界面简介
    • 脚本语法
    • 配置多数据源
    • 统一请求响应
    • 统一异常处理
    • 参数校验
    • 脚本调用Java
    • Java调用接口
    • 异步调用
    • 接口发布
    • Lambda
    • Linq
    • 从1.x迁移
  • 权限配置

    • UI鉴权登录
    • UI操作鉴权
    • 接口鉴权
  • 高级应用

    • 自定义拦截器
    • 自定义SQL拦截器
    • 自定义单表API拦截器
    • 自定义SQL缓存
    • 自定义模块
    • 自定义函数
    • 自定义类型扩展
    • 自定义接口存储
    • 自定义数据库方言
    • 自定义列名转换
    • 自定义脚本语言
  • 插件

    • 插件开发
    • 集群插件
    • 定时任务插件
    • Redis插件
    • Mongo插件
    • ElasticSearch插件
    • Swagger插件
    • Git插件
    • SpringDoc插件
    • nebula插件
  • 指南
  • 快速入门
mxd
2022-02-27
目录

分页

在magic-api中, 可以通过配置自定义分页接收参数或者结果。

# 如何分页?

# 自动分页

db.page可从形如xxx?page=1&size=10的url中获取分页参数。

// 自动从请求参数中获取页码(默认为page)、页大小(默认为size)
return db.page("""
    select * from sys_user
""")

# 手动分页

可手动传入分页参数。

return db.page("""
    select * from sys_user
""", 10, 20) // 跳过前20条查10条(limit, offset)

# 自定义分页参数

可根据需要在自己的项目中,调整以下分页参数。

magic-api:
  page:
    size: size # 页大小的请求参数名称 缺省时为size
    page: page # 页码的请求参数名称 缺省时为page
    default-page: 1 # 自定义默认首页 缺省时为1
    default-size: 10 # 自定义为默认页大小 缺省时为10

# 自定义分页JSON结果

默认分页结果返回值如下:

如需调整请参考 自定义JSON结果

# 自定义分页参数获取

对于分页参数不在请求参数中的使用此方法配置,使用此方法配置后,分页参数配置将失效。

/**
 * 分页对象默认提取接口
 */
@Component
public class MyPageProvider implements PageProvider {

    /**
    *   此方法需要根据实际情况替换
    */
    @Override
    public Page getPage(RuntimeContext context) {
        long page = NumberUtils.toLong(
                Objects.toString(context.eval("page"), (String)null), 1);
        long pageSize = NumberUtils.toLong(
                Objects.toString(context.eval("size"), (String)null), 20);
        // 计算limit以及offset
        return new Page(pageSize, (page - 1) * pageSize);
    }
}
上次更新: 2025-05-03 23:57:14
单表crud接口
界面简介

← 单表crud接口 界面简介→

Theme by Vdoing | Copyright © 2020-2025 ssssssss.org | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×