Я создаю API REST, который проверяет код двухфакторной аутентификации. Я использовал библиотеку для проверки, и она возвращает true или false.
Что касается моего ответа, то каким должен быть правильный, рекомендуемый или стандартный способ?
A. Код состояния возврата 200 и данные ответа либо true, либо false.
B. Вернуть код состояния 200 для истины и код состояния 400 (или какой код ошибки должен быть) для ложных?
Мы разрабатываем на JavaScript, и если бы я использовал реализацию A , это было бы примерно так:
// Not using async await
http.post(url).then(isValid => {
// If Else
});
// Using async await
const isValid = await http.post(url);
// If Else
При использовании B реализация:
// Not using async await
http.post(url).then(valid => {
// We expect valid to be always true
}).catch(err => {
// Check if error refers to invalid two fa code or other errors
});
// Using async await
try {
// We expect valid to be always true
const valid = await http.post(url);
} catch (err) {
// Check if error refers to invalid two fa code or other errors
}
Как видите, при использовании реализации B мне нужно будет использовать catch
и проверить, относится ли ошибка к недопустимому коду с двумя ошибками или другой ошибке. В отличие от A реализации, это либо true, либо false.