我的客户端应用程序是REST端点的使用者,生成JSON响应,可以返回具有不同场景的不同结构的错误响应;
错误1
{
"errorCode" : "XXXX"
"errorMessage" : "Validation Failed"
}//Note the lack of higher order key here; it's flat
错误2
{
"apiError" : {
"errorCode" : "XXXX"
"errorMessage" : "Validation Failed"
}
}//Note "apiError" is an object
错误3
{
"apiError" : [{
"errorCode" : "XXXX"
"errorMessage" : "Validation Failed"
}]
}//Note "apiError" is a Collection
正如我们在上面看到的,几个错误响应具有相同的键但具有不同的返回类型;
"的errorCode"嵌入在不同的密钥中,并且在全局中与JSON响应不同。
我对如何处理这种情况有点无能为力?是否有任何设计模式或围绕它的任何工作?
赞赏一些指导。
答案 0 :(得分:1)
没有'标准'处理这个的方法,但通常你应该在这个场景中做的是阅读API的文档。
一个好的API可能会对每种类型的错误使用相同的json格式,但如果他们不这样做,他们至少应该记录它。一个好的API可能也为每种类型的错误使用不同的媒体类型(因此您可以检查Content-Type以找出如何解析错误消息)。
当发出每种类型的错误时,可能是API文档。但是,如果没有一个指导您以更好的方式以一般方式处理这些类型的错误,您可能只需要查看响应主体并决定如何根据给您的内容来解析它。
答案 1 :(得分:-1)
在设计restful API时,您需要使用http状态代码。有关此link.
的相关信息样本回复如下。
成功场景(一个或多个场景);
{
"errors": null,
"results": [{
"key": "value"
}]
}
错误情景;
{
"errors": [{
"code": "ERR-500",
"message": "Error text"
}],
"results": null
}
多重错误情景;
{
"errors": [{
"code": "ERR-500",
"message": "Error text"
},{
"code": "ERR-403",
"message": "Error2 text"
}],
"results": null
}