Я пишу REST API в node.js. Я ожидаю, что максимум 5 параметров поступят в мой запрос GET. Если есть неопознанные параметры, я хочу отправить 400 Bad Request. В настоящее время я его обработки следующим образом:Эффективный способ обработки ошибок в REST Apis
server.route({
method: "GET",
path : "/test",
handler : function (request, reply) {
if (request.query.a || request.query.b || request.query.c || request.query.d || request.query.e)
{
// do some processing
}
else {
reply("No valid parameters").code(400);
}
}
});
Сейчас это не обрабатывает случай, если есть некоторые справедливы и некоторые недопустимые случаи. Я могу решить это, используя больше условий if. Но мне было просто интересно, существует ли стандартный или более эффективный метод, который используется разработчиками.
Спасибо. Это выглядит здорово. Я не могу проверить это прямо сейчас, но это позволяет делать такие случаи, как переданные только параметры a & b. Если параметры не будут переданы, он вернет 400? Мне жаль, что я не в состоянии проверить его сам на данный момент :( – user1692342
Да, с Joi можно сделать какие-либо проверки. Приведенный выше код не вернет 400, если параметры не переданы, но это можно настроить Joi на возврат 400. Ваш вопрос немного широк. Предлагаю посмотреть документацию Joi и попытаться создать схему проверки. Если у вас возникла проблема, откройте другой вопрос и список, какие случаи действительны, а какие - нет. –