在Ubuntu上集成Swagger,能否轻松实现高效API测试的便捷之道?
- 内容介绍
- 文章标签
- 相关推荐
痛点概述这方面,为什么在 Ubuntu 上使用 Swagger 成为迫切需求
在实际开发中。你可能会遇到以下困扰:
- 文档缺失或不同步:每次新增或修改接口,都要手动更新文档,导致前后端沟通成本高。
- 跨域报错:打开 Swagger UI 时常出现 CORS 错误,导致不能正常调用接口。话说回来,
- 认证信息难以注入:API 需要 API Key、OAuth 等认证。却找不到统一的配置入口,
- 手动测试效率低:每次都要使用 Postman 或 curl 编写请求,重复劳动耗时。
- 缺少自动化支持:想把接口测试纳入 CI/CD,却找不到合适的生成代码或脚本。
一、环境准备:在 Ubuntu 上搭建基础运行环境
安装 Node.js 与 npm
sudo apt update
sudo apt install -y nodejs npm
# 验证安装
node -v # 查看 Node.js 版本
npm -v # 查看 npm 版本
从可选来看,安装 Git
sudo apt install -y git
二、部署 Swagger UI
再看方式一。通过 npm 安装并运行
npm install -g swagger-ui-dist
# 创建一个目录存放 UI
mkdir ~/swagger-ui && cp -r $/swagger-ui-dist/* ~/swagger-ui/
# 启动一个简单的 HTTP 服务
cd ~/swagger-ui
npx http-server -p 8080
打开浏览器访问 http://localhost:8080 即可看到默认页面。
方式二这方面,Docker 一键启动
docker pull swaggerapi/swagger-ui
docker run -d -p 8080:8080 -e SWAGGER_JSON=/foo/swagger.yaml \
-v $/swagger.yaml:/foo/swagger.yaml swaggerapi/swagger-ui
将本地的 swagger.yaml 挂载进去后即可在 http://localhost:8080 查看并交互式测试。
三、集成 Swagger 到 Spring Boot 项目
如果后端基于 Spring Boot,可通过 springfox-swagger2/-ui 快速集成:
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
在启动类上添加注解:
@EnableSwagger2
@SpringBootApplication
public class Application { …}
默认访问地址为 /swagger-ui.html即可直接看到所有接口列表。
四、在 Swagger UI 中快速测试 API——一步到位的操作教程
- 查看接口详情:点击左侧列表中的任意接口,可看到请求方法、方法、参数说明及响应示例。
- "Try it out" 按钮:切换到编辑模式后在 "Params"/"Body" 区域填入参数,点击 "Execute" 即可发起真实请求。
- CORS 与认证处理:
-
从CORS来看。确保后端开启跨域,例如 Spring 中添加
@CrossOrigin` 或全局配置。 - 说到认证,在 UI 左上角点击 “Authorize”。填入 API Key、Bearer Token 等信息后保存,即可在后续请求中自动携带。
五、生成客户端代码:从文档到代码。一键落地
Swagger Codegen *可以把 swagger.yaml/JSON 转成多语言 SDK*,省去手写请求封装的时间。
# 安装 CLI
npm install -g swagger-codegen-cli
# 生成 JavaScript 客户端示例
swagger-codegen generate \
-i ./swagger.yaml \
-l javascript \
-o ./generated-client
# 完成后会得到一个包含封装好的 API 方法的目录,可直接 import 使用。
六、自动化测试与 CI/CD 集成方案
a) 使用生成的客户端配合测试框架
// test/api.test.js
const api = require;const { expect } = require;describe => {
it => {
const res = await api.UsersApi.getUsers;
expect.to.equal;expect.to.be.an;}),});
运行测试的观点是,
npx mocha test/api.test.js
b) 在 GitHub Actions 中加入验证步骤
name: API CI
再看on,push:
branches:
jobs这方面,test:
runs-on: ubuntu-latest
steps这方面,- uses: actions/checkout@v3
- name: Setup Node.js
至于uses。actions/setup-node@v4
with的观点是,node-version: '20'
- name: Install dependencies
再看run,npm ci
- name: Generate client code
再看run,|
npm i -g swagger-codegen-cli
swagger-codegen generate -i ./swagger.yaml -l javascript -o ./client
- name: Run tests
至于run,npx mocha ./client/tests/**/*.js
# 可选:上传 OpenAPI 文档至仓库审计网站…
七、常见问题与排查技巧
- CORS 报错:A) 确认后端已开启跨域;B) 若使用 Docker 部署 Swagger UI,请确保容器网络能够访问后端服务;C) 在浏览器控制台查看具体错误信息。
- Swagger UI 无法加载文档:A) 检查文件方法是否正确;B) 确认文档是合法的 YAML/JSON(可用 );C) 若使用 HTTPS,请保证证书链完整,否则会被浏览器拦截。
- "Authorize" 按钮不生效:A) 在 OpenAPI 定义中加入 securitySchemes;B) 确保 token 没有过期;C) 检查浏览器是否阻止了第三方 Cookie。
- Swagger Codegen 报错缺少依赖:A) 使用当前版本 CLI;B) 对于某些语言,需要额外安装 JDK 或 Python 环境;C) 查看错误日志中的 “missing required property” 并补全文档字段。
-
Docker 容器启动失败:A) 检查宿主机端口是否被占用;B) 确认挂载卷方法正确且文件权限足够;C) 使用
-e SWAGGER_JSON=/foo/swagger.yaml 明确指定文档位置。
\end{ul}
八、让 API 文档即是测试网站,让测试自动化成为常态
SDK」→「自动化 CI」的一整套闭环。这样不仅解决了「手动编写请求」「跨域报错」「文档不同步」等痛点。还能让团队在同一套 OpenAPI 定义下协同开发、持续交付,实现真正意义上的高效 API 测试。请根据自己的技术栈挑选对应章节执行,即可轻松拥有「一键看文档、一键测接口、一键生成客户端」的便捷之道。
痛点概述这方面,为什么在 Ubuntu 上使用 Swagger 成为迫切需求
在实际开发中。你可能会遇到以下困扰:
- 文档缺失或不同步:每次新增或修改接口,都要手动更新文档,导致前后端沟通成本高。
- 跨域报错:打开 Swagger UI 时常出现 CORS 错误,导致不能正常调用接口。话说回来,
- 认证信息难以注入:API 需要 API Key、OAuth 等认证。却找不到统一的配置入口,
- 手动测试效率低:每次都要使用 Postman 或 curl 编写请求,重复劳动耗时。
- 缺少自动化支持:想把接口测试纳入 CI/CD,却找不到合适的生成代码或脚本。
一、环境准备:在 Ubuntu 上搭建基础运行环境
安装 Node.js 与 npm
sudo apt update
sudo apt install -y nodejs npm
# 验证安装
node -v # 查看 Node.js 版本
npm -v # 查看 npm 版本
从可选来看,安装 Git
sudo apt install -y git
二、部署 Swagger UI
再看方式一。通过 npm 安装并运行
npm install -g swagger-ui-dist
# 创建一个目录存放 UI
mkdir ~/swagger-ui && cp -r $/swagger-ui-dist/* ~/swagger-ui/
# 启动一个简单的 HTTP 服务
cd ~/swagger-ui
npx http-server -p 8080
打开浏览器访问 http://localhost:8080 即可看到默认页面。
方式二这方面,Docker 一键启动
docker pull swaggerapi/swagger-ui
docker run -d -p 8080:8080 -e SWAGGER_JSON=/foo/swagger.yaml \
-v $/swagger.yaml:/foo/swagger.yaml swaggerapi/swagger-ui
将本地的 swagger.yaml 挂载进去后即可在 http://localhost:8080 查看并交互式测试。
三、集成 Swagger 到 Spring Boot 项目
如果后端基于 Spring Boot,可通过 springfox-swagger2/-ui 快速集成:
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
在启动类上添加注解:
@EnableSwagger2
@SpringBootApplication
public class Application { …}
默认访问地址为 /swagger-ui.html即可直接看到所有接口列表。
四、在 Swagger UI 中快速测试 API——一步到位的操作教程
- 查看接口详情:点击左侧列表中的任意接口,可看到请求方法、方法、参数说明及响应示例。
- "Try it out" 按钮:切换到编辑模式后在 "Params"/"Body" 区域填入参数,点击 "Execute" 即可发起真实请求。
- CORS 与认证处理:
-
从CORS来看。确保后端开启跨域,例如 Spring 中添加
@CrossOrigin` 或全局配置。 - 说到认证,在 UI 左上角点击 “Authorize”。填入 API Key、Bearer Token 等信息后保存,即可在后续请求中自动携带。
五、生成客户端代码:从文档到代码。一键落地
Swagger Codegen *可以把 swagger.yaml/JSON 转成多语言 SDK*,省去手写请求封装的时间。
# 安装 CLI
npm install -g swagger-codegen-cli
# 生成 JavaScript 客户端示例
swagger-codegen generate \
-i ./swagger.yaml \
-l javascript \
-o ./generated-client
# 完成后会得到一个包含封装好的 API 方法的目录,可直接 import 使用。
六、自动化测试与 CI/CD 集成方案
a) 使用生成的客户端配合测试框架
// test/api.test.js
const api = require;const { expect } = require;describe => {
it => {
const res = await api.UsersApi.getUsers;
expect.to.equal;expect.to.be.an;}),});
运行测试的观点是,
npx mocha test/api.test.js
b) 在 GitHub Actions 中加入验证步骤
name: API CI
再看on,push:
branches:
jobs这方面,test:
runs-on: ubuntu-latest
steps这方面,- uses: actions/checkout@v3
- name: Setup Node.js
至于uses。actions/setup-node@v4
with的观点是,node-version: '20'
- name: Install dependencies
再看run,npm ci
- name: Generate client code
再看run,|
npm i -g swagger-codegen-cli
swagger-codegen generate -i ./swagger.yaml -l javascript -o ./client
- name: Run tests
至于run,npx mocha ./client/tests/**/*.js
# 可选:上传 OpenAPI 文档至仓库审计网站…
七、常见问题与排查技巧
- CORS 报错:A) 确认后端已开启跨域;B) 若使用 Docker 部署 Swagger UI,请确保容器网络能够访问后端服务;C) 在浏览器控制台查看具体错误信息。
- Swagger UI 无法加载文档:A) 检查文件方法是否正确;B) 确认文档是合法的 YAML/JSON(可用 );C) 若使用 HTTPS,请保证证书链完整,否则会被浏览器拦截。
- "Authorize" 按钮不生效:A) 在 OpenAPI 定义中加入 securitySchemes;B) 确保 token 没有过期;C) 检查浏览器是否阻止了第三方 Cookie。
- Swagger Codegen 报错缺少依赖:A) 使用当前版本 CLI;B) 对于某些语言,需要额外安装 JDK 或 Python 环境;C) 查看错误日志中的 “missing required property” 并补全文档字段。
-
Docker 容器启动失败:A) 检查宿主机端口是否被占用;B) 确认挂载卷方法正确且文件权限足够;C) 使用
-e SWAGGER_JSON=/foo/swagger.yaml 明确指定文档位置。
\end{ul}
八、让 API 文档即是测试网站,让测试自动化成为常态
SDK」→「自动化 CI」的一整套闭环。这样不仅解决了「手动编写请求」「跨域报错」「文档不同步」等痛点。还能让团队在同一套 OpenAPI 定义下协同开发、持续交付,实现真正意义上的高效 API 测试。请根据自己的技术栈挑选对应章节执行,即可轻松拥有「一键看文档、一键测接口、一键生成客户端」的便捷之道。

