codeigniter 2026年2月1日正式推送的4.7.0版本,把api分页响应、数据转换两大功能纳入正式更新。之前项目负责人就在官方论坛说明,框架已经合并了api响应分页模块,还新增了api输出转换器transformers。这两个功能分别负责处理分页元数据、管控对外暴露的字段范围,能省去控制器里大量重复拼装响应结构的冗余代码。

来源:CodeIgniter 官方论坛
分页相关的新能力封装在 APIResponseTrait 和 ResponseTrait 中,新增的 paginate() 方法可以直接对接模型或者 Query Builder 的分页结果。返回内容自动包含业务数据、分页元信息和导航链接,开发人员不用再给每个接口单独写逻辑计算当前页、总页数与前后页跳转地址。如果你的项目已经有自己的统一响应包装层,迁移前一定要核对新返回的字段命名和现有客户端的约定规则是否匹配。

来源:CodeIgniter 官方论坛
官方示例还展示了分页JSON里的 data、meta 和 links 三层结构。除了响应体本身,分页信息也可以通过符合 RFC 8288 规范的 Link 响应头以及 X-Total-Count 头字段传递。普通前端可以直接读取JSON里的分页数据,遵循链接头规范的客户端也能走标准化入口获取信息,两边都兼顾到了。

来源:CodeIgniter 官方论坛
Transformers 的作用是把模型、实体或者其他内部数据转换成稳定的对外输出结构。它支持处理单条、多条数据,还能直接和分页结果搭配使用;自带的字段选择、关联包含能力,可以让接口按照请求方的需求范围输出内容。这个功能的核心不是简单改个字段名,而是把内部数据对象和对外接口契约彻底隔离开,避免数据库原始字段、临时属性或者敏感内容没经过显式校验就直接出现在响应里。

来源:CodeIgniter 官方论坛
引入转换器之后,接口测试要覆盖全几种场景:默认返回字段、指定 fields 参数、请求 include 关联资源、空结果、分页边界情况。后来官方在4.7.4版本的修复记录里,还处理了根请求的 fields 与 include 参数意外泄漏到嵌套转换器的问题,说明复杂嵌套场景一定要配合最新补丁做验证,不能只参考4.7.0的功能预览就直接部署。

来源:CodeIgniter 官方论坛
这组API调整更适合本身已经有明确响应契约的项目逐步采用。可以先挑一个分页列表接口验证返回结构和响应头是否符合预期,再给对应实体开发转换器,补全字段防泄漏的相关测试,就能把改动范围控制在清晰的边界里。另外官方当初首帖提到的 Problem Details、配套文档和代码生成器,都属于当时规划的后续设想,和已经正式合并的分页、Transformers不属于同等发布状态,不要混为一谈。


















