我们计划使用快速-ajv-傲慢-验证中间件来验证我们的api请求。
但是我看到它有一个初始化的异步函数,我想知道我可以在哪里插入swagger json文件。
如果它对每一个请求都这样做,我就觉得它太重了。那么,有人能分享如何实现“一次并永远使用”吗?
下面是关于当前如何使用它的示例。如何加载一次并将其存储在内存中,以避免每次都进行验证?
swaggerValidator.init('test/unit-tests/input-validation/pet-store-swagger.yaml')
.then(function () {
const app = express();
app.use(bodyParser.json());
app.get('/pets', swaggerValidator.validate, function (req, res, next) {
return res.json({ result: 'OK' });
});
app.post('/pets', swaggerValidator.validate, function (req, res, next) {
return res.json({ result: 'OK' });
});
app.get('/pets/:petId', swaggerValidator.validate, function (req, res, next) {
return res.json({ result: 'OK' });
});
app.use(function (err, req, res) {
if (err instanceof swaggerValidator.InputValidationError) {
return res.status(400).json({ more_info: JSON.stringify(err.errors) });
}
});
// const server = app.listen(serverPort, function () {});
});发布于 2019-07-13 17:57:01
在全局范围内运行代码。因为它是异步的,所以它返回一个您可以在函数中使用的承诺,这将确保它已经准备好使用了。
在全球范围内:
const promise = swaggerValidator.init(...).then(...)然后,在您的功能中:
promise.then(() => {
// use swaggerValidator
})https://stackoverflow.com/questions/57021537
复制相似问题