2013-02-15 49 views
2

如果Robustness Principle要保守你的所作所为,在自己接受别人时采用自由)是否应用于API?健壮性原则和API

举个例子,我已经看到了处理用户参数的API,如限制,在以下两种方法之一:

限制是结果的最大数量返回,如果用户输入的限制的字母'x',因为输入不是数值,所以一些API会引发验证错误,其他API会简单回落到默认限制(例如:1000)。

对于如何处理此类用户输入,您有何建议?抛出一个有用的和描述性的验证错误,或者优雅地清理输入并继续处理请求?

回答

1

只要你清楚地记录你要做什么,这两种方式都没有太大的区别。你在这种情况下的行为很大程度上取决于具体的领域和数据类型。例如,对于数字值,您可以将默认值设置为1000,但如果使用无效的时间戳,您会做什么?

对于极限值,我会降级为默认值(无论您使用什么值,如果它根本没有包括在内),但是您应该清楚地记录您的API将如何为每个字段表现出来(无论是需要的,默认的值等)。如果记录清楚,您的用户将(应该)能够以任何方式正确使用它。