CentOS环境下Swagger应用部署指南
在CentOS上部署Swagger应用前,需安装以下基础依赖:
sudo yum install -y java-1.8.0-openjdk-devel
java -version # 验证安装(需显示Java版本信息)
sudo yum install -y maven
mvn -version # 验证安装(需显示Maven版本信息)
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs
node -v # 验证安装(需显示Node.js版本信息)
npm -v # 验证安装(需显示npm版本信息)
若需将Swagger集成到Spring Boot应用中,实现API文档自动化生成,步骤如下:
pom.xml文件中添加以下依赖:<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>
SwaggerConfig.java配置类,指定扫描的控制器包路径: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.basePackage("com.yourpackage.controller")) // 替换为你的控制器包路径
.paths(PathSelectors.any())
.build();
}
}
mvn spring-boot:run),访问http://<服务器IP>:<应用端口>/swagger-ui.html(如http://192.168.1.100:8080/swagger-ui.html),即可查看Swagger UI界面。若需快速搭建Swagger编辑器或UI服务,可使用Docker:
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
docker pull swaggerapi/swagger-editor
docker run -d -p 8080:8080 --name swagger-editor swaggerapi/swagger-editor
访问http://<服务器IP>:8080,即可使用Swagger Editor编写API文档。docker pull swaggerapi/swagger-ui
docker run -d -p 8081:8081 --name swagger-ui swaggerapi/swagger-ui
访问http://<服务器IP>:8081,默认会加载https://petstore.swagger.io/v2/swagger.json,可通过修改配置指向自定义API文档。若需手动部署Swagger UI,步骤如下:
mkdir -p /opt/swagger
cd /opt/swagger
wget https://github.com/swagger-api/swagger-ui/archive/v3.34.0.tar.gz
tar -xf v3.34.0.tar.gz
cd swagger-ui-3.34.0
/usr/share/nginx/html):sudo cp -r dist/* /usr/share/nginx/html/
index.html文件,将默认的API文档URL(https://petstore.swagger.io/v2/swagger.json)替换为你的自定义URL(如http://<服务器IP>:<应用端口>/v2/api-docs)。sudo systemctl start nginx
sudo systemctl enable nginx
访问http://<服务器IP>,即可查看Swagger UI界面。application.properties或application.yml文件调整Swagger UI行为,例如:springfox.documentation.swagger.v2.path=/v2/api-docs # API文档路径
springfox.documentation.swagger-ui.base-url=/swagger-ui.html # UI入口路径
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/swagger-ui.html", "/v2/api-docs").hasIpAddress("192.168.1.0/24") # 仅允许192.168.1.0/24网段访问
.anyRequest().permitAll()
.and()
.csrf().disable();
}
}
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
JAVA_HOME环境变量是否正确设置:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
pom.xml中的依赖版本是否兼容(如Spring Boot与Swagger版本匹配)。通过以上步骤,可在CentOS环境下完成Swagger应用的部署与配置,实现API文档的自动化管理与可视化测试。