Docker是Debian上部署Swagger UI的高效工具,通过官方镜像实现一键部署,无需手动配置环境。
sudo apt update && sudo apt install docker.io;docker pull swaggerapi/swagger-ui;docker run -p 8080:8080 -d swaggerapi/swagger-ui;http://your-debian-ip:8080即可查看Swagger UI。通过Node.js的swagger-ui-express模块,将Swagger UI作为静态资源部署,适合需要自定义界面的场景。
sudo apt install nodejs npm;swagger-ui-express:sudo npm install -g swagger-ui-express;swagger.yaml);app.js),使用swagger-ui-express中间件关联Swagger文档:const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const app = express();
const swaggerDocument = YAML.load('./swagger.yaml');
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
app.listen(3000, () => console.log('Server running on port 3000'));
⑤ 启动应用:node app.js,访问http://localhost:3000/api-docs查看Swagger UI。若项目基于Spring Boot,可通过springfox-swagger2和springfox-swagger-ui依赖,自动生成并集成Swagger UI,适合Java生态项目。
sudo apt install openjdk-11-jdk maven;pom.xml中添加Swagger依赖:<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
③ 创建Swagger配置类(启用Swagger并配置扫描路径):import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
④ 打包项目:mvn clean install;java -jar target/your-app.jar;http://your-server-ip:8080/swagger-ui.html。Nginx可作为反向代理服务器,将Swagger UI部署在子路径(如/swagger-ui),提升访问安全性和灵活性。
sudo apt install nginx;/etc/nginx/sites-available/default),添加反向代理规则:server {
listen 80;
server_name your_domain.com;
location /swagger-ui/ {
proxy_pass http://localhost:3000/; # 假设Swagger UI运行在3000端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
③ 启用配置并重启Nginx:sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled && sudo systemctl restart nginx;http://your_domain.com/swagger-ui/。以上工具覆盖了Debian上Swagger的主要部署场景,可根据项目需求(如语言生态、自定义需求、运维便捷性)选择合适的方式。