Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否应该将稳健性原则(在你所做的事情上保持保守,在你从他人那里接受的事情上保持自由)应用于 API?
举个例子,我见过以两种方式之一处理用户参数的 API,例如limit :
其中limit是要返回的最大结果数,如果用户在limit中输入字母“x” ,一些 API 会抛出验证错误,因为输入不是数字,其他 API 只是回退到默认限制(例如: 1000)。
在如何处理此类用户输入方面,您有什么建议?抛出一个有用的描述性验证错误,或者优雅地清理输入并继续请求?
只要您清楚地记录您将要做什么,这两种方式都不会产生太大的影响。您在这种情况下的行为在很大程度上取决于特定的字段和数据类型。例如,您可以将数值默认为 1000 之类的数字,但是您将如何处理无效的时间戳?
对于一个限制值,我会降级为默认值(如果根本不包含它,你会使用什么值),但是你应该清楚地记录你的 API 对每个字段的行为方式(是否需要,它的默认值等) . 如果它被清楚地记录在案,您的用户将(应该)能够以任何一种方式正确使用它。