ubuntu

在Ubuntu上如何部署Swagger UI

小樊
43
2025-09-14 11:28:32
栏目: 智能运维

在Ubuntu上部署Swagger UI,你可以遵循以下步骤:

方法一:使用Docker

  1. 安装Docker: 如果你还没有安装Docker,请先安装它。打开终端并运行以下命令:

    sudo apt update
    sudo apt install docker.io
    
  2. 拉取Swagger UI Docker镜像: 使用以下命令从Docker Hub拉取Swagger UI的镜像:

    docker pull swaggerapi/swagger-ui-express
    
  3. 运行Docker容器: 运行一个Docker容器来托管Swagger UI。你可以指定端口映射和其他选项。例如:

    docker run -p 8080:8080 -d swaggerapi/swagger-ui-express
    

    这会将容器的8080端口映射到主机的8080端口。

  4. 访问Swagger UI: 打开浏览器并访问 http://localhost:8080,你应该能看到Swagger UI界面。

方法二:使用Node.js和Express

  1. 安装Node.js和npm: 如果你还没有安装Node.js和npm,请先安装它们。你可以使用以下命令:

    sudo apt update
    sudo apt install nodejs npm
    
  2. 创建一个新的Node.js项目: 创建一个新的目录并进入该目录:

    mkdir swagger-ui-deployment
    cd swagger-ui-deployment
    
  3. 初始化npm项目: 初始化一个新的npm项目:

    npm init -y
    
  4. 安装Swagger UI Express: 安装Swagger UI Express库:

    npm install swagger-ui-express
    
  5. 创建一个简单的Express应用: 创建一个名为 app.js 的文件,并添加以下代码:

    const express = require('express');
    const swaggerUi = require('swagger-ui-express');
    const YAML = require('yamljs');
    
    // Load Swagger document
    const swaggerDocument = YAML.load('./swagger.yaml');
    
    const app = express();
    
    // Serve Swagger docs
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
    
    const PORT = process.env.PORT || 3000;
    app.listen(PORT, () => {
      console.log(`Server is running on port ${PORT}`);
    });
    
  6. 创建Swagger文档: 创建一个名为 swagger.yaml 的文件,并添加你的API文档。例如:

    swagger: '2.0'
    info:
      title: Sample API
      description: A sample API to demonstrate Swagger UI deployment.
      version: '1.0.0'
    paths:
      /users:
        get:
          summary: List all users
          responses:
            '200':
              description: An array of users
    
  7. 运行应用: 在终端中运行以下命令来启动你的Express应用:

    node app.js
    
  8. 访问Swagger UI: 打开浏览器并访问 http://localhost:3000/api-docs,你应该能看到Swagger UI界面。

这两种方法都可以帮助你在Ubuntu上部署Swagger UI。选择适合你需求的方法即可。

0
看了该问题的人还看了