1

我正在 GRAILS 中开发一个简单的 Restful API,我希望用户能够在我的一个域类上创建一个条目,这样他们就可以点击一个入口点 /rest/v1/create/event?params

在接收控制器中,如果 GORM 条目失败,!event.save()

我有这样的代码:

def result = [
    'status'    :   'error',
    'data'      :   event.errors.fieldErrors.toList()
]
render result as JSON

有没有办法让 event.errors.fieldErrors JSON 友好,只有字段错误和消息,或者我必须编写一个解析器方法来处理这个?

4

2 回答 2

1

最终编写了一个简短的方法来解析并产生友好的错误

如果有人觉得这很有用,这里是:

def gorm_errors(results) {
        results =  results.fieldErrors.toList()
        def errors = []
        for(error in results) {
            errors.add([
                'type' : 'invalid_entry', 
                'field' : error.field, 
                'rejected_value' : error.rejectedValue, 
                'message' : error.defaultMessage
            ])
        }
        return errors
    }
于 2013-02-08T20:00:08.940 回答
0

这是上述示例的更“groovy-er”版本:

def gorm_errors(errors) {
    errors.fieldErrors.toList().collect {error ->
        [
            'type': 'invalid_entry', 
            'field': error.field, 
            'rejected_value': error.rejectedValue, 
            'message': error.defaultMessage
        ]
}
于 2014-02-14T19:12:09.187 回答