首页主机资讯swagger UI在ubuntu如何部署

swagger UI在ubuntu如何部署

时间2025-12-22 13:31:04发布访客分类主机资讯浏览617
导读:在 Ubuntu 上部署 Swagger UI 的三种常用方式 使用 Node.js + Express + swagger-ui-express(适合已有后端服务,快速集成) 使用 Docker(环境隔离、部署简单) 使用 Nginx/...

在 Ubuntu 上部署 Swagger UI 的三种常用方式

  • 使用 Node.js + Express + swagger-ui-express(适合已有后端服务,快速集成)
  • 使用 Docker(环境隔离、部署简单)
  • 使用 Nginx/Apache 静态托管(仅做文档展示,不依赖 Node)

方式一 Node.js + Express 集成

  • 安装依赖
    • 更新并安装 Node.jsnpm:sudo apt update & & sudo apt install -y nodejs npm
  • 初始化项目与安装依赖
    • mkdir swagger-demo & & cd swagger-demo
    • npm init -y
    • npm install express swagger-ui-express yamljs
  • 准备 API 文档
    • 新建 swagger.yaml(示例):
      openapi: 3.0.0
      info:
        title: Sample API
        version: 1.0.0
      paths:
        /users:
          get:
            summary: List users
            responses:
              '200':
                description: OK
      
  • 启动服务(server.js)
    const express = require('express');
        
    const swaggerUi = require('swagger-ui-express');
        
    const YAML = require('yamljs');
        
    const swaggerDocument = YAML.load('./swagger.yaml');
        
    
    const app = express();
        
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
        
    
    const PORT = process.env.PORT || 3000;
        
    app.listen(PORT, () =>
     console.log(`Server running on :${
    PORT}
        `));
        
    
    • 运行:node server.js
    • 访问:http://localhost:3000/api-docs
  • 说明
    • 也可使用 swagger.json,将 YAML 改为 JSON 加载方式(如 require 或 fs.readFileSync + JSON.parse)。

方式二 Docker 部署

  • 安装 Docker
    • sudo apt update & & sudo apt install -y docker.io
  • 运行 Swagger UI 容器(内置示例)
    • docker run -d -p 8080:8080 swaggerapi/swagger-ui-express
    • 访问:http://localhost:8080
  • 挂载本地文档
    • JSON:docker run -d -p 8080:8080 -e SWAGGER_JSON=/app/swagger.json -v $(pwd):/app swaggerapi/swagger-ui-express
    • YAML:docker run -d -p 8080:8080 -e SWAGGER_YAML=/app/swagger.yaml -v $(pwd):/app swaggerapi/swagger-ui-express
    • 访问:http://localhost:8080
  • 说明
    • 适合无 Node 环境的快速部署与演示,也可放入生产编排(如 docker-compose/k8s)。

方式三 静态托管 Nginx 或 Apache

  • 准备静态文件
    • 下载官方发布包:wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v3.48.0.tar.gz
    • 解压并将 dist 目录内容复制到站点目录(如 /var/www/html/swagger-ui
  • 配置 Swagger UI 指向你的文档
    • 编辑 /var/www/html/swagger-ui/index.html,将 url 改为你的 swagger.jsonswagger.yaml 地址(可为相对路径或完整 URL)
  • Nginx 示例
    • root /var/www/html; index index.html;
    • 访问:http://your_server_ip/swagger-ui
  • Apache 示例
    • 将文件放入 /var/www/html/swagger-ui 后启用站点并重启服务
  • 说明
    • 静态托管最省资源,适合只做文档浏览;若文档在远程服务,需保证可跨域访问或在同一域名下。

常见问题与优化

  • 访问被拒绝或端口不通
    • 开放防火墙端口(如 3000/8080):sudo ufw allow 3000,8080/tcp
    • 云服务器需配置安全组放行对应端口
  • 文档跨域
    • 静态托管时,将文档与 UI 同源,或在文档服务开启 CORS
  • 生产建议
    • 使用 Nginx 反向代理统一端口与证书(HTTPS)
    • 将文档纳入 CI/CD,变更自动部署
    • 为 UI 设置基础路径(Swagger UI 配置中的 urlspec 参数)

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: swagger UI在ubuntu如何部署
本文地址: https://pptw.com/jishu/777318.html
Debian系统如何监控Kafka Debian上Kafka版本怎么选

游客 回复需填写必要信息