鲁棒性原理 (在您所做的事情上是保守的,在您接受他人的方面是自由的)是否应该应用于API?
作为一个例子,我看到了处理用户参数的API,比如限制,有两种方式之一:
如果极限是返回结果的最大数量,如果用户输入字母'x‘表示限制,一些API会抛出一个验证错误,因为输入不是数字,其他API只是返回到默认限制(例如: 1000)。
在如何处理这样的用户输入方面,您有什么建议?抛出一个有用的描述性验证错误,还是优雅地清理输入并继续请求?
发布于 2013-02-15 20:05:36
这两者都没有很大的区别,只要你清楚地记录你将要做的事情。在这种情况下,您的行为将在很大程度上取决于特定字段和数据类型。例如,对于数值,可以默认为1000这样的数字,但是如何处理无效的时间戳?
对于一个限制值,我将降级为默认值(如果它根本不包括的话,您将使用什么值),但是,您应该清楚地记录您的API对于每个字段的行为方式(不管它是必需的,还是它的默认值,等等)。如果它被清楚地记录下来,您的用户将(应该)能够正确地使用它。
https://stackoverflow.com/questions/14898271
复制相似问题