【发布时间】:2018-05-09 06:43:06
【问题描述】:
我在我的代码中使用了非常旧的第 3 方 API,例如,在成功和失败的情况下它会返回不同的响应
为了成功
SuccessResObj{
a{...
b{...
c{...}
}
}
}
实际 SuccessResObj 有大约 10-15 个嵌套对象。
失败
FailureResObj{
status="failure because of ...";
code="400"; // code will always be 400 in case of failure, irrespective of reason of failure
}
FailureResObj 只有 2 个变量。
我知道它错了,但第 3 方 API 不会改变那里的响应,我必须在我的代码中解决问题,我应该如何处理它,因为我需要在数据库中记录这两种情况。
编辑
我尝试创建一个 WrapperBean
WrapperBean{
SuccessResObj;
FailureResObj;
}
WrapperBean=ApiResonse();
然后是它的 ClassCastExcaption,因为响应只是一种类型的对象,我正在尝试将它与具有 2 个对象的 WrapperBean 映射。
将不胜感激提供此类响应的示例处理代码。
可以简单地将其视为一种随机返回 2 种不同类型响应的方法。应该怎么处理。
【问题讨论】:
-
这不一定是错的。每个响应状态代码可以有不同的模式类型。客户有责任了解如何读取每种可能的模式类型。
-
什么是失败的响应码?和成功一样吗?
-
那么我应该如何处理它。我错过了什么?
-
成功没有响应码,只有失败才会有响应码。
-
创建一个ResponseBean类并创建两个子类SuccessResponseBean和FailureResponseBean