【发布时间】:2017-07-06 22:49:22
【问题描述】:
我的客户端应用程序是 REST Endpoint 的消费者,它生成 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 响应全局出现在同一级别。
我对如何处理这种情况有点不知所措?是否有任何设计模式或解决方法?
感谢一些指导。
【问题讨论】:
-
对于相同的请求负载?
-
@Amit Kumar Ghosh - 是的......所有情况下的请求结构都是相同的......
-
@Divs 你是在使用
RestTemplate来消耗这些资源吗? -
您实际上使您的客户更加困难,因为他们将不得不关闭 Error1 中显示的
errorCode和其他错误类型中显示的apiError。您需要的是一个返回apiError类型对象数组的键 -
我的应用程序是客户端应用程序...它是消费者,而不是生产者。
标签: json rest design-patterns spring-boot response