【发布时间】:2016-08-04 01:09:33
【问题描述】:
我正在使用一个新系统并建立我将要返回的错误合同。我正在尝试关注OData v4 Error Response structure。
由于这是一个 C# 服务,在异常对象和 OData 错误响应之间似乎有一个非常好的映射。但是,我们正在尝试确定错误响应对象是否可以包含其他任意属性。内部错误被明确声明为允许具有其他属性,因此以下内容有效:
{
"error": {
"code": "BadArgument",
"message": "Previous passwords may not be reused",
"target": "password",
"innererror": {
"code": "PasswordDoesNotMeetPolicy",
"minLength": "6",
"maxLength": "64",
"minDistinctCharacterTypes": "2",
}
}
}
异常上的Data 属性很好地映射到此,我们可以将内部异常上的每个值转换为错误上的属性。因此,如果客户端向外部异常添加任意属性,是否可以将它们作为根属性公开。例如:
{
"error": {
"code": "BadArgument",
"message": "PasswordDoesNotMeetPolicy",
"target": "password",
"minLength": "6",
"maxLength": "64",
"minDistinctCharacterTypes": "2",
}
}
或者这样的东西通常被认为是 OData 的“坏形式”?
【问题讨论】: