2013-02-15 2 views
2

Должно ли Robustness Principle (быть консервативным в том, что вы делаете, быть либеральным в том, что вы принимаете от других) применять к API?Принцип надежности и API

В качестве примера, я видел API, которые обрабатывают пользовательские параметры, такие как предела, в одном из двух способов:

Где предела максимальное количество возвращаемых результатов, если пользователь входит в букву «x» для лимит, некоторые API выдает ошибку проверки, так как ввод не был числовым, другие API просто возвращаются к пределу по умолчанию (например: 1000).

Что вы бы посоветовали в отношении того, как обращаться с таким пользовательским вводом? Выбросить полезную и описательную ошибку проверки или изящно дезинформировать ввод и продолжить запрос?

ответ

1

Это не имеет большого значения в любом случае, если вы четко документируете, что вы собираетесь делать. Ваше поведение в подобной ситуации будет во многом зависеть от конкретного поля и типа данных. Например, вы можете по умолчанию использовать число 1000 для числовых значений, но что вы будете делать с недопустимой меткой времени?

Для предельного значения я бы деградировал до значения по умолчанию (независимо от того, какое значение вы бы использовали, если оно вообще не было включено), однако вы должны четко документировать, как ваш API будет вести себя для каждого поля (независимо от того, требуется ли его по умолчанию значения и т. д.). Если это четко задокументировано, ваши пользователи будут (должны) иметь возможность использовать его должным образом в любом случае.