如何确保在启动Express应用程序之前,Swagger文件中已经logging了API?

我的节点应用程序创build三个不同的快速服务器,每个服务器都在不同的端口上侦听 每个服务器都有一组不同的API,这三个服务器之间有一些共同点。 还有一个swagger.yaml文件,该文件应包含任何要发送的API的文档。 我想确保在启动应用程序之前将每个APIlogging在这个swagger文件中,并且如果有任何API被路由到服务器但没有logging,那么它将失败。

到目前为止,我已经尝试过各种中间件来validation和路由基于swagger文档的API。 不过,据我所知,validationfunction只检查swagger文件的任何语法或格式错误,路由完全更新基于swagger.yaml的应用程序的路线。 即以前的逻辑被删除。 例:

let swagger = require('swagger-tools'); let YAML = require('yamljs'); let app1 = express(); let app2 = express(); let app3 = express(); //There is logic here that routes various endpoints to each app let swaggerDocument = YAML.load("./swagger/swagger.yaml"); swagger.initializeMiddleware(swaggerDocument, function (middleware) { app3.use(middleware.swaggerMetadata()); app3.use(middleware.swaggerValidator({ validateResponse: true })); app3.use(middleware.swaggerRouter({useStubs: true, contoller: '/controllers'})); app3.use(middleware.swaggerUi()); let server1 = http.createserver1(app1); server1.listen(app1.get('port'), function() { }); let server2 = http.createServer(app2); server2.listen(app2.get('port'), function() { }); let server3 = http.createServer(app3); server3.listen(app3.get('port'), function() { }); }); 

我如何保持与app1,app2和app3相关的正确端点,但确保它们在swagger.yaml中?

Interesting Posts