Skip to content Skip to sidebar Skip to footer

How To Attach Middleware In Swagger Express Like Express-validator

I am trying to edit my express-swagger project and following this tutorial to add input validation into an express app I used swagger-express-mw package to generate a boilerplate

Solution 1:

I know this is an old question, but this might help someone along the way.Here is the simple NodeJS code showing how to integrate swagger-tools with swagger-express-mw or swagger-node-runner npm packages.


var SwaggerExpress = require('swagger-express-mw');
var swaggerTools = require('swagger-tools');

var app = require('express')();
module.exports = app; // for testing

var config = {
    appRoot: __dirname // required config
};

SwaggerExpress.create(config, function(err, swaggerExpress) {
    if (err) {
        throw err;
    }

    // install middleware
    swaggerExpress.register(app);

    //swaggerobject is created by the swagger-express-mw module which is stored in runner object.
    var swaggerObjectLoaded = swaggerExpress.runner.swagger;

    //pass the runner object to initializeMiddleware function 
    swaggerTools.initializeMiddleware(swaggerObjectLoaded, function(middleware) {


        app.use(middleware.swaggerMetadata());

        // Validate Swagger requests
        app.use(middleware.swaggerValidator());

        // Route validated requests to appropriate controller
        app.use(middleware.swaggerRouter(options));

        // Serve the Swagger documents and Swagger UI
        app.use(middleware.swaggerUi());

        var port = process.env.PORT || 10010;
        app.listen(port);

        if (swaggerExpress.runner.swagger.paths['/hello']) {
            console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott');
        }
    });

});

Post a Comment for "How To Attach Middleware In Swagger Express Like Express-validator"