很多时候我们遇到的代码是我们使用JSON格式而没有实际的数据合同验证。例如我有一个ASP.Net服务器端代码,它返回一个Javascript客户端的序列化答案。此外,此客户端使用响应中的某些值来进行其他服务器端调用。虽然不是很频繁,但我们确实看到有人在服务器端增加了数据类型,以非常糟糕的方式破坏了客户端。我正在寻找建议如何实施适当的构建时间验证系统以避免此类问题
让我用一个假设的例子来解释。客户致电getCars(int employeeID)
==&gt;响应对象具有List<CarIDs, CarNames>
。使用CarIDs
次迭代调用从UI到getCarDetails(CarID)
。现在早些时候,CarID
的数据类型为int
,最近更新为长。 Javascript有一个限制,只能处理最多15位数字,因此在客户端,任何数字反序列化都会向上舍入。这导致结果不准确。
如果有任何关于我如何能够预先实施某些验证/合同以解决此类问题的建议,请告诉我。