按照这个教程,在已有的express应用程序中集成Swagger不难。
通常,我们可以按照以下步骤操作:
将相应依赖项添加到我们的package.json
文件中,并运行npm install
安装它们。依赖项应包括:
"dependencies": {
"swagger-node-express": "~2.0",
"minimist": "*",
"body-parser": "1.9.x",
...
}
下载Swagger-UI的zip项目,将dist
文件夹复制到我们项目的根目录下,目录结构应该类似于:
![enter image description here](https://istack.dev59.com/z0r0Q.webp)
在app.js
的开头引入相关依赖:
var argv = require('minimist')(process.argv.slice(2));
var swagger = require("swagger-node-express");
var bodyParser = require( 'body-parser' );
设置Swagger文档的子路径:
var subpath = express();
app.use(bodyParser());
app.use("/v1", subpath);
swagger.setAppHandler(subpath);
确保在express中,/dist
可以用来提供静态文件:
app.use(express.static('dist'));
设置API的信息:
swagger.setApiInfo({
title: "example API",
description: "API to do something, manage something...",
termsOfServiceUrl: "",
contact: "yourname@something.com",
license: "",
licenseUrl: ""
});
介绍 /dist/index.html
用于 Swagger UI:
subpath.get('/', function (req, res) {
res.sendfile(__dirname + '/dist/index.html');
});
完成Swagger配置:
swagger.configureSwaggerPaths('', 'api-docs', '');
var domain = 'localhost';
if(argv.domain !== undefined)
domain = argv.domain;
else
console.log('No --domain=xxx specified, taking default hostname "localhost".');
var applicationUrl = 'http://' + domain;
swagger.configure(applicationUrl, '1.0.0');
在/dist/index.html
中配置文档文件依赖:
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
<del>url = "http://petstore.swagger.io/v2/swagger.json";</del>
url = "/api-docs.json";
}
创建一个名为api-docs.json
的文件,其中包含API的信息,并将其放在dist
文件夹中。
在本地运行Express应用程序,访问http://localhost:3000/v1
,我们可以查看Swagger文档。
这是我测试示例存储库可供参考。