在 Linux 上“部署 Swagger”通常有几种常见场景,我先按最常见需求给你讲,然后补充不同方式。
如果你已经有 OpenAPI / Swagger JSON/YAML 文件,只是想在 Linux 上通过浏览器访问文档。
docker run -d -p 8080:8080 \
-e SWAGGER_JSON=/foo/swagger.json \
-v /path/to/swagger.json:/foo/swagger.json \
swaggerapi/swagger-ui
访问:
http://服务器IP:8080
如果没有 Swagger JSON,只想看 UI:
docker run -d -p 8080:8080 swaggerapi/swagger-ui
然后手动填 URL。
# 安装 nginx
sudo apt install nginx
# 下载 swagger-ui
wget https://github.com/swagger-api/swagger-ui/archive/refs/heads/master.zip
unzip master.zip
sudo cp -r swagger-ui-master/dist/* /var/www/html/swagger/
访问:
http://服务器IP/swagger/
修改默认文档地址:
vi /var/www/html/swagger/swagger-initializer.js
改成你的 JSON 地址。
Maven:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
http://服务器IP:端口/swagger-ui.html
或(新版):
http://服务器IP:端口/swagger-ui/index.html
npm install swagger-ui-express
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const swaggerDocument = YAML.load('./swagger.yaml');
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
访问:
http://服务器IP:3000/api-docs
如果你告诉我:
我可以直接给你一套完整部署命令。