我应该假设API总是返回其文档说的内容吗?

问题描述 投票:0回答:1

有一个API,根据其文档将始终返回:

{
  "some": {
    "nested": { "value": 14 }
  }
}

我正在使用API​​的版本1,因此不应更改。

如果API返回200状态代码以外的其他内容,我将进行异常处理。

我的问题是,如果API返回其他内容,我是否应该以某种方式使其代码正常运行的方式编写代码? (例如14不是数字,“嵌套”不存在,等等。)

例如:

begin
  value = response["some"]["nested"]["value"]
rescue KeyError
  # Do something so that the process can continue
end

这是否会有任何价值,或者最好只是假设API会始终按照它所说的去做,如果不这样做,那么应用程序将抛出错误,我会通过我们的监视系统通知该错误?] >

通常来说,您应该期望用户提供任何输入,并妥善处理。从某种意义上说,API不过是具有非常特定的响应的用户,另一方面,如果我认为API就像一个包含的库,那么我将假定它响应了预期的响应(例如,我从不打算将我的代码计划为处理CoolLibrary.add(5, 2)返回字符串)

注意:我显然已经测试了端点,并且我的代码在正常情况下可以正常工作

根据它的文档,有一个API总是会返回:{“ some”:{“ nested”:{“ value”:14}}}我正在使用API​​的版本1,因此不应更改。我有例外...

api exception language-agnostic
1个回答
1
投票

您需要考虑可能发生的故障情况,而不考虑故障发生的可能性。当然,API should

© www.soinside.com 2019 - 2024. All rights reserved.