如何在Strapi控制台中禁用pagination并屏蔽meta返回值?
禁用Strapi API的分页并移除meta字段
方法1:通过请求参数临时禁用(单次生效)
在请求URL后追加查询参数,即可临时禁用分页并去掉meta字段:
http://localhost:1337/api/tests?pagination[enabled]=false
返回的响应将仅保留{ data: [...] }结构,不会包含带分页信息的meta字段。
方法2:在Strapi控制台全局禁用(永久生效)
- 打开Strapi后台控制台,进入Content Type Builder
- 找到你的
Test集合类型,点击Edit进入编辑页面 - 切换到Settings标签页,找到Pagination选项
- 取消勾选「Enable pagination(启用分页)」的开关
- 点击Save保存设置,重启Strapi服务后生效
之后请求http://localhost:1337/api/tests会默认返回仅含data的响应。
方法3:修改路由配置全局禁用(适合自定义路由场景)
如果需要更灵活的控制,可直接修改该API的路由配置文件:
- 打开项目根目录下的
src/api/test/routes/test.js文件 - 在对应GET路由的配置中添加
pagination: false:
module.exports = { routes: [ { method: 'GET', path: '/tests', handler: 'test.find', config: { pagination: false, // 禁用分页 // 若无需接口认证,可添加 auth: false }, }, ], };
- 保存文件后重启Strapi,配置即可生效。
方法4:自定义控制器返回格式(适合深度定制)
如果需要完全自定义响应结构,可重写控制器的查询方法:
- 打开
src/api/test/controllers/test.js文件 - 重写
find方法:
module.exports = { async find(ctx) { // 查询所有Test类型的数据 const data = await strapi.db.query('api::test.test').findMany(); // 返回仅包含data的响应结构 ctx.body = { data }; }, };
- 保存后重启Strapi,请求接口就会得到目标响应格式。
内容的提问来源于stack exchange,提问作者stewie
相关产品推荐
相关产品推荐

