温馨提示×

Swagger在Linux如何回滚

小樊
47
2026-07-10 14:12:14
栏目: 智能运维

Linux 上“回滚 Swagger” 要看你具体指的是什么场景,因为 Swagger 本身只是一个 API 规范/工具集,通常和部署方式有关。下面按最常见场景给你说明。


一、常见理解澄清

你可能的意思 实际含义
Swagger 回滚 Swagger UI / Swagger 版本回退
Swagger 接口回滚 API 接口版本回退
Swagger 导致服务异常 回退整个服务
Swagger 配置改错 回滚配置

二、按场景给出回滚方案


✅ 场景 1:Swagger UI 版本回滚(最常见)

1️⃣ 如果是 手动部署 Swagger UI

Swagger UI 本质是一堆静态文件。

# 查看当前版本
ls /opt/swagger-ui

回滚方式:

# 下载指定版本
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v4.15.5.tar.gz

# 解压
tar -zxvf v4.15.5.tar.gz

# 替换
rm -rf /opt/swagger-ui
mv swagger-ui-4.15.5 /opt/swagger-ui

回滚完成


2️⃣ 如果是 Docker 部署 Swagger UI

# 查看当前容器
docker ps

# 停止
docker stop swagger-ui

# 回滚到指定版本
docker run -d --name swagger-ui \
  -p 8080:8080 \
  swaggerapi/swagger-ui:v4.15.5

或:

docker rm -f swagger-ui
docker run -d --name swagger-ui swaggerapi/swagger-ui:<旧版本>

✅ 场景 2:Spring Boot + Swagger(springfox / springdoc)

1️⃣ Maven 回滚版本

<!-- 示例:springdoc -->
<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  <version>2.1.0</version> <!-- 回滚到旧版本 -->
</dependency>
mvn clean package

2️⃣ Gradle 回滚

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'

3️⃣ Linux 上重启服务

systemctl restart your-service
# 或
./restart.sh

✅ 场景 3:Swagger 配置改错,想回滚配置

1️⃣ Git 回滚(推荐)

git log
git checkout <commit_id> -- src/main/resources/

或:

git revert <commit_id>

2️⃣ 无 Git(手动备份)

cp application.yml application.yml.bak
cp application.yml.20240101 application.yml

✅ 场景 4:Swagger 导致服务启动失败(紧急回滚)

方式 1:临时禁用 Swagger

@Profile("!prod")
@Configuration
public class SwaggerConfig {
}

或:

springdoc:
  api-docs:
    enabled: false
  swagger-ui:
    enabled: false

重启服务 ✅


三、快速判断你该用哪种方式

你可以直接回答我这几个问题,我可以给你精确命令

  1. ✅ Swagger 是 UI 还是接口
  2. ✅ 是否使用 Docker
  3. ✅ 是否是 Spring Boot
  4. ✅ 是 版本升级后出问题吗?
  5. ✅ Linux 发行版(CentOS / Ubuntu)?

四、总结一句话

Swagger 没有“内置回滚”,回滚本质是:版本回退 + 重启服务。

如果你愿意,可以直接把:

  • 报错信息
  • 部署方式
  • Swagger 版本

贴出来,我可以一步一步带你回滚 ✅

0