2.0.0 (2024-01-15)
2.0.0 (2024-01-15)【免费下载链接】swagger-docsGenerates swagger-ui json files for Rails APIs with a simple DSL.项目地址: https://gitcode.com/gh_mirrors/sw/swagger-docs新增功能新增分页参数支持添加批量操作接口支持JSON:API规范破坏性变更用户列表接口返回结构变更认证机制升级为JWT文档更新更新Swagger文档配置添加API使用示例## ️ 高级版本管理技巧 ### 1. 条件性文档生成 根据环境变量动态生成特定版本的文档 ruby # config/initializers/swagger_docs.rb apis_to_generate {} # 只生成当前活跃版本的文档 if ENV[GENERATE_API_V1] true apis_to_generate[1.0] { api_file_path: public/api/v1/, base_path: http://api.example.com/v1, parent_controller: Api::V1::BaseController } end if ENV[GENERATE_API_V2] true || Rails.env.production? apis_to_generate[2.0] { api_file_path: public/api/v2/, base_path: http://api.example.com/v2, parent_controller: Api::V2::BaseController } end Swagger::Docs::Config.register_apis(apis_to_generate)2. 版本兼容性处理处理不同版本间的兼容性问题# app/controllers/api/v2/base_controller.rb class Api::V2::BaseController ActionController::Base before_action :check_api_version private def check_api_version version request.headers[X-API-Version] || 2.0 if version ! 2.0 render json: { error: API版本#{version}已弃用请升级到v2.0, migration_guide: http://docs.example.com/migrate-v1-to-v2 }, status: :gone end end end3. 文档版本回滚机制建立文档版本控制系统确保可以随时回滚到之前的文档版本# 文档版本控制脚本 #!/bin/bash API_VERSION$1 TIMESTAMP$(date %Y%m%d_%H%M%S) # 备份当前文档 cp -r public/api/v${API_VERSION} public/api/v${API_VERSION}_backup_${TIMESTAMP} # 生成新文档 rake swagger:docs # 如果生成失败恢复备份 if [ $? -ne 0 ]; then echo 文档生成失败恢复备份... rm -rf public/api/v${API_VERSION} cp -r public/api/v${API_VERSION}_backup_${TIMESTAMP} public/api/v${API_VERSION} exit 1 fi 最佳实践总结版本管理黄金法则语义化版本控制遵循主版本.次版本.修订号MAJOR.MINOR.PATCH规范向后兼容性次要版本更新保持向后兼容主要版本更新可包含破坏性变更版本生命周期明确每个版本的支持周期和弃用时间表文档同步确保文档与代码版本完全同步推荐的版本管理流程新功能开发 → 更新对应版本控制器 → 更新Swagger文档定义 → 运行文档生成任务 → 验证文档正确性 → 部署到对应环境 → 更新版本变更日志【免费下载链接】swagger-docsGenerates swagger-ui json files for Rails APIs with a simple DSL.项目地址: https://gitcode.com/gh_mirrors/sw/swagger-docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考