使用Swagger for Express和正常路线

时间:2013-02-18 20:19:18

标签: api node.js rest express swagger

我有兴趣使用像swagger-node-express这样的东西为我正在处理的项目构建API。但是,应用程序的某些部分是基于非api的(而不是HTML)。有没有人对如何使用Swagger和正常路线有任何想法?

1 个答案:

答案 0 :(得分:5)

您只需要确保您的路线不会与Swagger路线发生冲突,并且您的其他路线将照常处理。一种简单的方法是让Swagger在子路径下生活。看看那个分数上的文档:

https://github.com/wordnik/swagger-node-express

var app = express();
var subpath = express();

app.use(express.bodyParser());
app.use("/v1", subpath);

swagger.setAppHandler(subpath);

否则,您可以留意以确保您在应用程序中使用的其他任何URL都与Swagger URL冲突,并且您应该能够正常定义路由和处理程序。例如。您可以使用Swagger在http://localhost:8002/api-docs.json/pet下提供文档,但只需通过以正常方式添加路由,http://localhost:8002/foo/执行其他操作:

app.get(/foo/, function(req, res, next) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Foo\n');
})

使用子路径配置可能是最干净的方法,但您也可以自己跟踪路线,并确保Swagger路线与应用程序其余部分的路线不冲突。