我需要处理错误代码错误并以JSON格式返回错误,如下所示。
{
"errorCode":400,
"errors":[
{
"errorField":"dispachNumber",
"errorDescription": "This is not a valid dispatch Number"
},
{
"errorField":"phone",
"errorDescription": "Phone numbers must be in the XXX-XXX-XXXX format"
}
]
}
{
"errorCode":500,
"errors":[
{
"errorDescription": "there was an internal server error"
}
]
}
我的问题是如何处理这种方式,这里我只能处理单个错误,但是当我处理多个错误时,它只返回一个错误结构,请参阅代码我是如何做到这一点的。
Errors := ErrorHandle(403, "User Id", "User Id must be of integer type")
Errors = ErrorHandle(403, "Phone Number", "Phone Number type")
和ErrorHandle()
的作用
func ErrorHandle(ErrorCode int, ErrorFields, ErrorDesc string) []Errors {
AllErrors := []Errors{}
if len(AllErrors) > 0 {
AllErrors = IterateErrors(AllErrors, ErrorCode, ErrorFields, ErrorDesc)
} else {
Errorsvalue := Errors{
ErrorCode: ErrorCode,
}
Error := Error{}
Error.ErrorFields = ErrorFields
Error.ErrorDescription = ErrorDesc
Errorsvalue.ErrorDesc = append(Errorsvalue.ErrorDesc, Error)
AllErrors = append(AllErrors, Errorsvalue)
}
return AllErrors
}
提前致谢 !
你总是创建一个新的空AllErrors
切片,向它添加一个错误,然后返回它。
你的ErrorHandle
应该采用现有的错误列表并附加到它或你应该有一个自定义的type Errors []Error
使用如下:
type Errors []Error
func (Errors *e) ErrorHandle(...) {
...
e = append(e, <new error>)
}
Errors myerrors;
myerrors.ErrorHandle(<first error>)
myerrors.ErrorHandle(<second error>)
这只是高级代码,你应该能够填写其余部分。