centos swagger最佳实践指南
导读:CentOS 上 Swagger 最佳实践指南 一 环境准备与版本选择 系统更新与基础工具:执行 sudo yum update -y,安装常用工具(如 gcc-c++、make)以确保后续编译和网络下载顺利。 Node.js 与 npm...
CentOS 上 Swagger 最佳实践指南
一 环境准备与版本选择
- 系统更新与基础工具:执行 sudo yum update -y,安装常用工具(如 gcc-c++、make)以确保后续编译和网络下载顺利。
- Node.js 与 npm:用于部署 Swagger Editor/UI。示例(NodeSource 14.x):
curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
sudo yum install -y nodejs
验证:node -v、npm -v。 - Java 与 Maven(若你的后端是 Java/Spring Boot):
sudo yum install -y java-1.8.0-openjdk-devel maven
验证:java -version、mvn -version。 - 版本建议:Swagger Editor/UI 选择稳定发布版本(如 v3.34.0 等),避免过旧或 rc 版本进入生产。
- 防火墙放行:开放文档与后端端口(示例:8080、3000、80)
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload。
二 部署 Swagger Editor 与 Swagger UI
- 目录规划:建议统一放置于 /opt/swagger。
- 部署 Swagger Editor:
mkdir -p /opt/swagger & & cd /opt/swagger
git clone https://github.com/swagger-api/swagger-editor.git
cd swagger-editor & & npm install -g http-server
http-server -p 8081 &
访问:http://< 服务器IP> :8081。 - 部署 Swagger UI(静态站点方式):
cd /opt/swagger
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v3.34.0.tar.gz
tar -xzf v3.34.0.tar.gz & & mv swagger-ui-3.34.0 /var/www/html/swagger-ui
配置 Apache 虚拟主机(/etc/httpd/conf.d/swagger.conf):
< VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html/swagger-ui
< Directory /var/www/html/swagger-ui>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
重启:sudo systemctl restart httpd;访问:http://yourdomain.com。 - 自定义文档接入:将你的 openapi.yaml/json 放入站点目录(如 /var/www/html/swagger-ui),并在 Swagger UI 的 index.html 中将默认 URL 改为你的文件地址(如 /swagger-ui/api.yaml 或 /static/your-api.json)。
三 在 Java Spring Boot 中集成 Swagger
- 依赖(示例使用 Springfox Swagger2,版本 2.9.2):
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
- 配置类:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage(“com.example.controller”))
.paths(PathSelectors.any())
.build();
}
} - 访问地址:http://< 服务器IP> :8080/swagger-ui.html(Spring Boot 内嵌 Tomcat 场景)。
四 安全与访问控制
- 访问控制:
- 基本认证(Nginx 示例):
sudo htpasswd -c /etc/nginx/.htpasswd admin
在 server 配置中添加:
location /api/ {
auth_basic “Restricted Access”;
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:8080;
} - 反向代理与内网隔离:通过 Nginx/Apache 统一暴露文档域名,后端仅监听内网。
- 基本认证(Nginx 示例):
- 文档安全:生产环境建议开启 身份认证 与 授权,避免未授权访问接口规范。
- CORS 处理:若 Swagger UI 与后端跨域,需在后端添加 CORS 响应头(如 Access-Control-Allow-Origin)。
五 文档规范与运维建议
- 规范与版本:在 API 路径中包含版本号(如 /api/v1/users),保持与实现一致;将 openapi.yaml/json 纳入 Git 版本控制,避免文档漂移。
- 示例与可操作性:在接口定义中补充 请求/响应示例、错误码说明与约束,提升可测试性与对接效率。
- 性能与缓存:静态资源启用 压缩与缓存(如 Nginx gzip、Cache-Control),减少带宽与时延。
- 容器化交付:使用官方镜像快速部署文档站点,降低环境差异风险。示例:
docker run -d -p 80:8080 swaggerapi/swagger-ui
访问:http://< 服务器IP> 。 - 持续集成:在 CI 中加入 lint/openapi 校验 与 部署发布 流程,确保每次变更均生成可用文档。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos swagger最佳实践指南
本文地址: https://pptw.com/jishu/759020.html
