Ubuntu上Swagger API文档维护实操指南
一 工具选型与总体流程
二 本地编辑与校验
sudo apt update && sudo apt install -y nodejs npmdocker run -d -p 8080:8080 swaggerapi/swagger-editornpm install -g swagger-cliswagger-cli validate openapi.yamlswagger-cli bundle openapi.yaml --outfile openapi.bundle.yaml --type yamlnpm install -g redoc-cliredoc-cli bundle openapi.yaml --output docs/index.html三 在 Node.js 服务中集成与发布
npm install swagger-jsdoc swagger-ui-expressconst express = require('express');
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const app = express();
const port = process.env.PORT || 3000;
const swaggerDefinition = {
openapi: '3.0.0',
info: { title: 'My API', version: '1.0.0' },
servers: [{ url: 'http://localhost:' + port, description: 'Dev server' }]
};
const options = {
swaggerDefinition,
apis: ['./routes/**/*.js'] // 你的路由/注解文件
};
const swaggerSpec = swaggerJsdoc(options);
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
app.listen(port, () => console.log(`API docs at http://localhost:${port}/api-docs`));
四 自动化运维与发布
docker run -d -p 8080:8080 -e SWAGGER_JSON=/spec/openapi.yaml -v $PWD/spec:/spec swaggerapi/swagger-uiname: Docs
on: [push]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '18' }
- run: npm i -g swagger-cli
- run: swagger-cli validate openapi.yaml
build:
needs: validate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '18' }
- run: npm i -g redoc-cli
- run: redoc-cli bundle openapi.yaml --output docs/index.html
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
五 维护最佳实践
swagger-cli validate,阻止不合规的规范合入。