2

是否应该将稳健性原则在你所做的事情上保持保守,在你从他人那里接受的事情上保持自由)应用于 API?

举个例子,我见过以两种方式之一处理用户参数的 API,例如limit :

其中limit是要返回的最大结果数,如果用户在limit中输入字母“x” ,一些 API 会抛出验证错误,因为输入不是数字,其他 API 只是回退到默认限制(例如: 1000)。

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

4

1 回答 1

1

只要您清楚地记录您将要做什么,这两种方式都不会产生太大的影响。您在这种情况下的行为在很大程度上取决于特定的字段和数据类型。例如,您可以将数值默认为 1000 之类的数字,但是您将如何处理无效的时间戳?

对于一个限制值,我会降级为默认值(如果根本不包含它,你会使用什么值),但是你应该清楚地记录你的 API 对每个字段的行为方式(是否需要,它的默认值等) . 如果它被清楚地记录在案,您的用户将(应该)能够以任何一种方式正确使用它。

于 2013-02-15T20:05:36.443 回答