Swagger在Ubuntu中的最佳实践
sudo apt update && sudo apt install -y nodejs npm openjdk-11-jdk maven
。swaggerapi/swagger-ui-express
镜像),避免环境冲突,提升部署一致性。例如:docker run -p 8080:8080 -e SWAGGER_JSON=/app/swagger.json -v $(pwd):/app swaggerapi/swagger-ui-express
。swagger-ui-express
(Express项目)或swagger-jsdoc
(生成文档),配置静态文件服务。例如Express项目中:app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument))
。allow 192.168.1.0/24; deny all;
。swagger-ui-express
的securityDefinitions
配置),强制接口调用者身份验证;使用HTTPS加密数据传输(通过Let’s Encrypt免费证书),防止数据泄露。integer
、string
)和格式校验(如email
),拒绝非法输入。swagger.yaml
/swagger.json
)实现版本控制(如Git),通过路径标识API版本(如/v1/users
、/v2/users
),便于回溯和迭代。user-api.yaml
、order-api.yaml
),使用$ref
引用公共组件(如参数、响应模型),提升文档可维护性。openapi-generator-cli
)根据Swagger文档生成Java、Spring Boot等语言的代码框架(如控制器、模型),减少手动编码工作量。例如:java -jar openapi-generator-cli-5.2.1.jar generate -i api-spec.yaml -g spring -o ./generated-code
。expires
指令),缓存静态资源(如CSS、JS文件),减少重复加载时间。gzip on;
)、HTTP/2协议,优化Swagger UI的访问速度。swagger-cli
的bundle
命令合并swagger.yaml
),减少文档体积;避免在文档中包含大量冗余数据(如过大的示例)。Try it out
调用)。/api-docs
)。springdoc-openapi-starter-webmvc-ui
(替代旧版springfox
),自动注入OpenAPI规范,支持OAuth2、JWT等认证机制,简化配置。例如添加依赖:implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
。