Robustness Principle(你做的比较保守,你接受别人接受的是否自由)是否应该应用于API?
作为一个例子,我见过以下两种方式之一处理用户参数的API,例如 limit :
其中 limit 是要返回的最大结果数,如果用户为 limit 输入字母'x',则某些API会因输入而抛出验证错误不是数字,其他API只是回到默认限制(例如:1000)。
在如何处理此类用户输入方面,您会建议什么?抛出一个有用的描述性验证错误,或优雅地清理输入并继续请求?
答案 0 :(得分:1)
只要你清楚地记录下你要做的事情,它就不会产生很大的不同。在这种情况下,您的行为很大程度上取决于具体的字段和数据类型。例如,对于数值,您可以默认使用1000这样的数字,但是如何处理无效的时间戳?
对于限制值,我会降级为默认值(如果根本没有包含你将使用的任何值),但是你应该清楚地记录你的API对每个字段的行为(是否需要,它的默认值)等)。如果它已经清楚地记录下来,那么您的用户将(应该)能够正确地使用它。