在 Debian 上使用 Swagger,通常有两种常见场景:
下面分别说明,假设你用的是 Debian 11/12。
sudo apt update
sudo apt install -y nginx unzip wget
cd /tmp
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.14.zip
unzip v5.17.14.zip
sudo cp -r swagger-ui-5.17.14/dist /var/www/html/swagger
sudo systemctl start nginx
浏览器访问:
http://<你的IP>/swagger
修改默认 API 地址:
sudo nano /var/www/html/swagger/swagger-initializer.js
改成你的 OpenAPI 地址:
url: "http://localhost:8080/v3/api-docs",
sudo apt install -y docker.io
sudo systemctl start docker
docker run -d -p 8080:8080 \
-e SWAGGER_JSON=/foo/openapi.yaml \
-v $PWD/openapi.yaml:/foo/openapi.yaml \
swaggerapi/swagger-ui
访问:
http://localhost:8080
docker run -d -p 8081:8080 swaggerapi/swagger-editor
访问:
http://localhost:8081
sudo apt install -y default-jre wget
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.52/swagger-codegen-cli-3.0.52.jar
java -jar swagger-codegen-cli-3.0.52.jar generate \
-i openapi.yaml \
-l spring \
-o ./generated
支持语言:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.5.0</version>
</dependency>
访问:
http://localhost:8080/swagger-ui.html
sudo ufw allow 80Swagger UI 访问远程 API 时,API 需允许 CORS。
| 用途 | 推荐 |
|---|---|
| 查看 API | Swagger UI |
| 编写 API | Swagger Editor |
| 生成代码 | Swagger Codegen |
| Spring Boot | springdoc-openapi |
如果你能告诉我:
我可以给你更精确的 Debian 操作步骤。