Debian环境下Swagger文档管理技巧
一 基础环境与工具选型
二 目录与版本管理
/api
/v1
controllers/
routes/
swagger.json
/v2
controllers/
routes/
swagger.json
const swaggerUi = require('swagger-ui-express');
const v1Doc = require('./api/v1/swagger.json');
const v2Doc = require('./api/v2/swagger.json');
app.use('/api-docs/v1', swaggerUi.serve, swaggerUi.setup(v1Doc));
app.use('/api-docs/v2', swaggerUi.serve, swaggerUi.setup(v2Doc));
三 自动化生成与验证
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');
const options = {
definition: {
openapi: '3.0.0',
info: { title: 'API', version: '1.0.0' },
servers: [{ url: 'http://localhost:3000' }]
},
apis: ['./routes/**/*.js'] // 按注释生成
};
const spec = swaggerJsdoc(options);
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(spec));
四 部署与访问控制
server {
listen 80;
server_name your.domain;
location /swagger-ui/ {
root /usr/share/nginx/swagger-ui-dist;
try_files $uri $uri/ /index.html;
}
location /api-docs {
rewrite ^/api-docs/(.*)$ /swagger.json last;
}
}
五 持续交付与运维实践