Я разрабатываю мобильное приложение, с базой данных в Node.js. Пользователи будут взаимодействовать с платформой почти исключительно через мобильное приложение. В качестве составной части бэкенда я использую несколько API, которые будут использоваться мобильным приложением - например: API для создания учетной записи, отправки сообщения, публикации изображения и т. Д.Лучшая практика для проверки ввода API в Node.js?
Что лучше всего подходит для проверить вход API?
Моя мысль заключается в создании модуля для каждого API, целью которого является извлечение, дезинфекция и проверка соответствующих атрибутов из http-запроса. Например, API-интерфейс «создать учетную запись» будет иметь связанный с ним модуль AccountCreationRequest
с методом validate
, в котором будут определены все проверки, зависящие от учетной записи. Затем каждая конкретная проверка может выполняться библиотеками, такими как express validator и validator.
exports.AccountCreationRequest = {
init: function(request) {
... extract attributes ...
},
sanitizeAndValidate: function() {
... use express-validator/validator on
attributes such as username, email, etc ...
},
isValid: function() {
... return result of validation ...
}
};
Затем, когда бэкенд API получает запрос,
var accountCreationRequest = AccountCreationRequest.init(httpRequest);
accountCreationRequest.sanitizeAndValidate();
if (accountCreationRequest.isValid()) {
... store in database and notify client of success ...
} else {
... notify client of failure ...
}
Меня беспокоит то, что N APIs потребует N запроса-проверки-модулей. Однако, поскольку каждый API уникален, я не думаю, что есть много возможностей для повторного использования кода.