<分区>
我正在开发一个移动应用程序,后端使用 Node.js。用户将几乎完全通过移动应用程序与平台进行交互。作为后端的一部分,我公开了多个 API 以供移动应用程序使用——例如:用于创建帐户、发送消息、发布图片等的 API。
验证 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 个 API 将需要 N 个请求验证模块。但是,由于每个 API 都是唯一的,我认为代码重用的机会不大。