在 Debian 下使用 Swagger,通常取决于你是 写接口文档、生成代码,还是 在项目中集成 Swagger UI。下面按常见场景给你一个完整说明(以 Debian 11/12 为例)。
| 名称 | 作用 |
|---|---|
| OpenAPI | 接口描述规范(以前叫 Swagger) |
| Swagger Editor | 编写 OpenAPI 文档 |
| Swagger UI | 可视化接口文档 |
| Swagger Codegen | 根据文档生成代码 |
| Springfox / springdoc-openapi | Java / Spring 项目集成 |
Debian 官方源里没有 swagger 包,用 Docker 最省事。
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
docker run -d -p 8080:8080 swaggerapi/swagger-editor
浏览器访问:
http://localhost:8080
docker run -d -p 8081:8080 swaggerapi/swagger-ui
访问:
http://localhost:8081
sudo apt install -y wget unzip
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.14.zip
unzip v5.17.14.zip
cd swagger-ui-5.17.14/dist
python3 -m http.server 8080
访问:
http://localhost:8080
修改 swagger.json 路径即可加载你的接口文档。
示例 swagger.yaml:
openapi: 3.0.0
info:
title: 示例 API
version: 1.0.0
paths:
/hello:
get:
summary: 示例接口
responses:
'200':
description: 成功
content:
application/json:
example:
msg: "Hello Swagger"
在 Swagger Editor 里粘贴即可实时预览。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
访问:
http://localhost:8080/swagger-ui.html
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello Swagger";
}
}
npm install swagger-ui-express swagger-jsdoc
const express = require("express");
const swaggerJsdoc = require("swagger-jsdoc");
const swaggerUi = require("swagger-ui-express");
const app = express();
const spec = swaggerJsdoc({
definition: {
openapi: "3.0.0",
info: { title: "API", version: "1.0.0" }
},
apis: ["./index.js"]
});
app.use("/docs", swaggerUi.serve, swaggerUi.setup(spec));
app.listen(3000);
访问:
http://localhost:3000/docs
sudo apt install -y default-jre
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.46/swagger-codegen-cli-3.0.46.jar
生成 Python 客户端:
java -jar swagger-codegen-cli.jar generate \
-i swagger.yaml \
-l python \
-o ./python-client
❌ 不能,Swagger 不是系统软件,推荐 Docker 或手动部署。
✅ 现在 Swagger = OpenAPI 工具集,规范叫 OpenAPI。
| 场景 | 推荐 |
|---|---|
| 本地写文档 | Swagger Editor + Docker |
| 接口展示 | Swagger UI |
| Spring 项目 | springdoc-openapi |
| 快速测试 | Node.js + swagger-ui-express |
如果你能告诉我:
我可以给你 精确到命令级别 的方案。