Как мне убедиться, что API были задокументированы в файле Swagger перед запуском приложения Express?
Мое приложение узла создает три разных экспресс-сервера, каждый из которых прослушивает свой порт. Каждый сервер имеет свой набор API, некоторые из которых являются общими для трех серверов. Существует также файл swagger.yaml, который должен содержать документацию для любого маршрутизируемого API. Я хотел бы убедиться, что каждый API документирован в этом файле swagger перед запуском приложения, и чтобы он не работал, если какой-либо API направлен на сервер, но не документирован.
До сих пор я пробовал различные промежуточные программы для проверки и маршрутизации API на основе документа чванства. Однако, насколько я обнаружил, функция проверки только проверяет файл 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?