swagger-api / swagger-node

Swagger module for node.js
http://swagger.io
Apache License 2.0
3.97k stars 584 forks source link

Trying to load multiple swagger files #490

Open suniljain524 opened 7 years ago

suniljain524 commented 7 years ago

I could not find the documentation related to api versioning with swagger.

I want to load multiple swagger.yaml like swagger.v1.yaml and swagger.v2.yaml

Can you please help me, how can we achieve this.

I am trying to create app from below code-

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

// install middleware swaggerExpress.register(app);

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'); } });

andrea689 commented 6 years ago

try this:

var SwaggerExpress = require('swagger-express-mw');
var express = require('express')
var app = express();
var app1 = express();
var app2 = express();

var config1 = {
  appRoot: __dirname,
  swaggerFile: "./api/swagger/version1.yaml"
};

var config2 = {
  appRoot: __dirname,
  swaggerFile: "./api/swagger/version2.yaml"
};

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

  // install middleware
  swaggerExpress.register(app1);
}

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

  // install middleware
  swaggerExpress.register(app2);
}

app.use('/api/v1', app1);
app.use('/api/v2', app2);

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