例如,当我发出以下http请求时:
获取/myBox
并期望json格式的数据响应:
{
a: (expecting a number),
b: (expecting a string),
c: (expecting 'apple', 'orange', or 'banana')
}那么让我们假设我们的服务器程序永远不会出错。我们是否需要验证响应的内容数据,以防出现一些净错误?如果我们应该这样做,那么验证每个响应数据的最有效方法是什么?
发布于 2018-03-24 16:33:40
最好是创建一个可预测的JSON有效负载,该负载在成功和错误情况下都来自您的服务器。例如,如果我们遇到一个错误,可能是这样的有效负载:
{ error: true, errorMessage: 'Some error message', payload: null }对于与网络相关的错误,您需要在客户端应用程序中处理适当的HTTP状态代码。更多信息请点击这里:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
如果您想要为从服务器传递到客户端数据开发一个脊状模式,那么您可能需要考虑一种更适合于Protobuf的格式。
请参见:
发布于 2018-03-24 16:36:44
总体而言,我认为您可以合理地预期响应是正确的。大多数开发人员会这样做。如果您要处理多个服务器以及这些服务器的多个实现者实现相同的协议,那么您可能不能信任它。
在这种情况下,验证响应的一种方法是使用诸如json-schema之类的内容。
但是,如果您处理的服务器不多,也许您可以问问自己,在哪些情况下响应可能是错误的。你有理由不相信它吗?
发布于 2018-03-24 16:20:32
当您设置response对象中预期的字段的数据类型时,您可以验证响应数据。
例如:
假设这是您期望作为响应对象的类:-
public class example {
private String field1;
private int field2;
private bloolean field3;
}如果在上面的字段中,你得到的是field1,而不是字符串,那么你会得到一个错误,检查服务器是否给出了你期望的响应。
https://stackoverflow.com/questions/49462632
复制相似问题