温馨提示×

Linux Swagger如何迁移

小樊
36
2026-08-05 21:38:06
栏目: 智能运维

下面我按常见场景给你一个清晰的 Linux 下 Swagger 迁移指南。如果你指的是 Swagger → OpenAPI / Swagger UI / Swagger 工具链迁移,也可以直接跳到对应部分。


一、先明确:你指的是哪种“Swagger 迁移”?

常见迁移场景有 4 种:

  1. Swagger 2.0 → OpenAPI 3.x(规范升级)
  2. Swagger UI 迁移 / 升级(Linux 服务器)
  3. Spring Boot Swagger 迁移(Java 项目)
  4. Swagger 接口文档迁移到新服务器 / 新环境

二、Swagger 2.0 → OpenAPI 3.x(最常见)

✅ 为什么要迁移?

  • Swagger 2.0 已停止维护
  • OpenAPI 3.x 是行业标准
  • 更好的参数、安全、回调支持

✅ 迁移方式

1️⃣ 使用官方迁移工具(推荐)

npm install -g @openapitools/openapi-generator-cli

转换:

openapi-generator-cli generate \
  -i swagger.yaml \
  -g openapi \
  -o openapi3

或在线工具:

  • https://editor.swagger.io
    • File → Convert to OpenAPI 3

三、Linux 下 Swagger UI 迁移 / 升级

场景:从旧服务器迁移到新 Linux 服务器

✅ 1. 备份原 Swagger UI

tar -czvf swagger-ui-bak.tar.gz /var/www/swagger-ui

✅ 2. 下载最新 Swagger UI

cd /var/www
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.0.tar.gz
tar -xzvf v5.17.0.tar.gz
mv swagger-ui-5.17.0 swagger-ui

✅ 3. 配置 API 地址

编辑:

vim /var/www/swagger-ui/dist/swagger-initializer.js

修改:

url: "https://api.example.com/v2/api-docs",

✅ 4. Nginx 示例

server {
    listen 80;
    server_name swagger.example.com;

    root /var/www/swagger-ui/dist;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

四、Spring Boot Swagger 迁移(Java)

❌ 旧方式(Swagger 2)

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-boot-starter</artifactId>
</dependency>

✅ 新方式(OpenAPI 3)

<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  <version>2.3.0</version>
</dependency>

✅ application.yml

springdoc:
  api-docs:
    path: /v3/api-docs
  swagger-ui:
    path: /swagger-ui.html

访问:

http://localhost:8080/swagger-ui/index.html

五、Swagger 文档迁移到新环境

✅ 1. 导出接口文档

curl http://localhost:8080/v2/api-docs > swagger.json

✅ 2. 新环境导入

  • Swagger UI → 粘贴 JSON
  • 或直接放到服务器:
/var/www/swagger-ui/dist/swagger.json

并修改:

url: "/swagger.json"

六、常见问题

❓ 迁移后接口不显示?

✅ 检查:

  • OpenAPI 版本
  • 路径是否正确
  • DTO 是否缺少 schema

❓ Linux 权限问题?

chown -R nginx:nginx /var/www/swagger-ui
chmod -R 755 /var/www/swagger-ui

七、我可以更精确帮你

你可以直接告诉我:

  1. ✅ 用的是 Swagger UI / Spring Boot / Node / 其他?
  2. ✅ Linux 发行版(CentOS / Ubuntu / 容器?)
  3. ✅ 是 迁移服务器 还是 升级规范

我可以给你一步一步的命令级方案

0