【发布时间】:2017-10-03 00:05:16
【问题描述】:
当我在 Grails 中使用 RestfulController 保存对象的数据时,如何防止客户端将更改应用到相关的子对象?
给定以下域类:
class Language {
String name
}
class TranslationText {
Language language
String text
}
以及 TranslationText 的以下 POST 数据:
{
"language": { "id": 1, "name": "InvalidName" },
"text": "Some Text"
}
在这里,我想引用现有的语言资源(ID=1),但我不希望客户端更改名称。
如何使用文本和语言(基于 ID)保存此资源,但丢弃无效的语言名称属性?
我想以尽可能最小的方式修改 RestfulController,尽可能保留默认行为。
【问题讨论】:
-
如果您不想分配
name属性,可以使用bindable约束。 docs.grails.org/latest/ref/Constraints/bindable.html -
如果我将它映射到语言类上,这不会阻止我在发布到 LanguageController 时绑定它吗?
标签: grails grails-orm grails-3.3 grails-rest-api