linux

Swagger如何在Linux上部署

小樊
44
2025-04-07 02:38:48
栏目: 智能运维

在Linux上部署Swagger可以通过以下几种方法实现,包括安装Swagger UI和Swagger Editor。以下是详细的步骤:

1. 安装Swagger UI

使用Node.js和Express

  1. 下载并安装Node.js和npm

    • 访问Node.js官网下载适用于Linux的Node.js压缩包(例如node-v0.10.26-linux-x64.tar.gz)。
    • 使用WinSCP或其他文件传输工具将压缩包上传到Linux服务器。
    • 在服务器上解压:
      tar xvf node-v0.10.26-linux-x64.tar.gz
      cd node-v0.10.26-linux-x64/bin
      ./node
      
    • 设置Node.js和npm全局路径:
      ln -s /root/Swagger/node-v0.10.26-linux-x64/bin/node /usr/local/bin/node
      ln -s /root/Swagger/node-v0.10.26-linux-x64/bin/npm /usr/local/bin/npm
      
    • 检测安装是否成功:
      node -v
      npm -v
      
  2. 安装Express和其他必要的模块

    npm install express --save
    npm install body-parser cookie-parser multer --save
    
  3. 创建并配置Express应用

    • 创建index.js文件并添加以下内容:
      var express = require('express');
      var app = express();
      app.use('/swagger', express.static('public'));
      app.get('/', function (req, res) { res.send('Hello World'); });
      app.listen(3000, function () {
          var host = server.address().address;
          var port = server.address().port;
          console.log("应用实例,访问地址为 http://%s:%s", host, port);
      });
      
    • node_app目录下创建public文件夹,并将Swagger UI的dist文件夹中的文件复制到public文件夹中。
    • 启动服务器:
      node index.js
      
    • 访问http://公司服务器IP:3000/swagger即可看到Swagger UI。

使用Apache或Nginx

  1. 安装必要的依赖

    sudo apt update
    sudo apt install -y openjdk-11-jre-headless
    sudo apt install maven
    
  2. 下载并解压Swagger UI

    wget https://repo1.maven.org/maven2/io/springfox/springfox-swagger-ui/2.9.2/springfox-swagger-ui-2.9.2.html
    unzip springfox-swagger-ui-2.9.2.html
    sudo mv springfox-swagger-ui-2.9.2 /var/www/html/swagger-ui
    
  3. 配置Swagger UI

    • 编辑/var/www/html/swagger-ui/index.html文件,找到以下行并进行修改:
      <script>
      window.onload = function() {
          // Begin Swagger UI call region
          const ui = SwaggerUIBundle({
              url: "http://petstore.swagger.io/v2/api-docs",
              dom_id: '#swagger-ui',
              deepLinking: true,
              presets: [
                  SwaggerUIBundle.presets.apis,
                  SwaggerUIStandalonePreset
              ],
              plugins: [
                  SwaggerUIBundle.plugins.DownloadUrl
              ],
              layout: "StandaloneLayout"
          });
          // End Swagger UI call region
          window.ui = ui;
      }
      </script>
      
  4. 启动Web服务器

    • Apache
      sudo a2ensite default.conf
      sudo systemctl restart apache2
      
    • Nginx
      sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.baksudo nano /etc/nginx/sites-available/default
      
      修改server块中的rootindex指令:
      server {
          listen 80 default_server;
          listen [::]: 80 default_server;
          root /var/www/html;
          index index.html index.htm;
          server_name _;
          location / {
              try_files $uri $uri/ /index.html;
          }
      }
      
      保存并退出编辑器,然后重启Nginx:
      sudo systemctl restart nginx
      
  5. 访问Swagger UI

    • 打开浏览器,访问http://your_server_ip/swagger-ui即可看到Swagger UI。

2. 安装Swagger Editor

  1. 下载Swagger Editor

    wget https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.50.0/swagger-editor.min.js
    wget https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.50.0/swagger-editor.min.css
    
  2. 移动文件到Web服务目录

    sudo mv swagger-editor.min.js /var/www/html/
    sudo mv swagger-editor.min.css /var/www/html/
    
  3. 创建一个简单的HTML文件来加载Swagger Editor

    sudo nano /var/www/html/swagger-editor.html
    

    添加以下内容:

    <!DOCTYPE html>
    <html>
    <head>
        <link rel="stylesheet" type="text/css" href="swagger-editor.min.css">
    </head>
    <body>
        <div id="swagger-editor"></div>
        <script src="swagger-editor.min.js"></script>
        <script>
            window.onload = function() {
                const editor = SwaggerEditor({
                    url: "https://petstore.swagger.io/v2/api-docs",
                    dom_id: '#swagger-editor'
                });
            }
        </script>
    </body>
    </html>
    
  4. 启动Web服务器

    • Apache
      sudo a2ensite default.conf
      sudo systemctl restart apache2
      
    • Nginx
      sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.baksudo nano /etc/nginx/sites-available/default
      
      修改server块中的rootindex指令:
      server {
          listen 80;
          server_name localhost;
          root /var/www/html;
          index index.html index.htm;
          location / {
              try_files $uri $uri/ /index.html;
          }
      }
      
      保存并退出编辑器,然后重启Nginx:
      sudo systemctl restart nginx
      
  5. 访问Swagger Editor

    • 打开浏览器,访问http://your_server_ip/swagger-editor即可看到Swagger Editor。

3. 使用Docker部署Swagger Editor并实现远程访问

  1. 拉取Swagger Editor容器

    docker pull swaggerapi/swagger-editor
    
  2. 运行容器并映射端口

    docker run -p 8088:8080 -d swaggerapi/swagger-editor
    
  3. 安装Cpolar内网穿透工具

    • 访问Cpolar官网注册免费套餐账号。
    • 使用一键脚本安装Cpolar:
      curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
      
    • 向系统添加服务并启动Cpolar:
      sudo systemctl enable cpolar
      sudo

0
看了该问题的人还看了