我正在构建一个与公共API交互的库。我应该对传递的数据进行验证还是将其留给API?

时间:2011-09-01 22:20:01

标签: api validation

我正在构建一个开源库来与公共API进行交互。 API验证传递给它的所有数据,并在失败时正确返回非200状态代码,通常是失败消息,导致我的库抛出异常。

我的一些方法会检查所需的参数,但大多数情况下我决定在将数据传递给API之前不验证数据。

API的库是否也应该验证数据?如果是这样,到什么程度?它应该尝试完全验证所有数据还是只验证所需参数是否存在?

1 个答案:

答案 0 :(得分:1)

规则有两个部分:在输入时,是一个接受爱的祖母:接受调用者给你的东西,而不是在界面公约上的粘合剂,在它没有什么区别;或者您可以提供合理的默认值。在输出时,遵循约定的惯例:做一个严格的学究,一个马丁。

因此,在我看来,答案是肯定的,您应该检查调用者的输入并为API提供最佳数据。但这并不一定意味着你应该复制API无论如何要做的验证。

你必须用头脑思考什么才有意义。