控制器中默认对 REST API 输入进行校验
页面摘要: 在 Strapi 5 中,控制器默认对 REST API 输入进行校验,而非静默清理,对于无效数据(如无法识别的字段和未经允许的关联)会抛出
400 Bad Request错误。
清理(sanitization)是指对象被「清洗」后返回。
校验(validation)是指断言数据已经是干净的,如果发现不应存在的内容则会抛出错误。
Strapi 在 控制器中的清理与校验 中同时提供了清理和校验方法,它们可以针对输入体数据、查询参数以及输出(仅用于清理)。
在 Strapi 5 中,控制器默认对 REST API 输入进行校验,而非接受无效数据并静默清理它。
本页面是破坏性变更数据库的一部分,提供有关该破坏性变更的信息,以及从 Strapi v4 迁移到 Strapi 5 的附加说明。
破坏性变更说明
在 Strapi v4 中
在 v4 中,查询参数会被校验,但输入数据(创建和更新体数据)仅被清理。
在 Strapi 5 中
在 v5 中,查询参数和输入数据都会被校验。
迁移
本节汇总了关于该破坏性变更的有用说明和操作步骤。
说明
-
如果请求包含无效值,将抛出
400 Bad Request错误,例如以下情况:- 用户没有权限创建的关联
- 不存在于模式(schema)中的无法识别的值
- 试图写入不可写字段以及内部时间戳(如
createdAt和createdBy字段) - 使用
id字段(用于连接关联除外)来设置或更新对象的id
手动操作步骤
用户应确保参数和输入数据有效,以避免抛出 400 错误。更多信息可在 控制器中的清理与校验 文档中找到。