ali linux 上安装swagger-codegen
安装Java环境(如果已经安装可跳过)
sudo yum install -y java-11-openjdk-devel
同时维护 2.x 和 3.x 版本可确保完美兼容两种规范:
# 创建安装目录
sudo mkdir -p /opt/swagger-codegen/{v2,v3}
sudo chown -R ${USER}:${USER} /opt/swagger-codegen
cd /opt/swagger-codegen# 下载 2.x 版本 (支持 Swagger 2.0)
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.34/swagger-codegen-cli-2.4.34.jar -P v2/
mv v2/swagger-codegen-cli-*.jar v2/swagger-codegen-cli.jar# 下载 3.x 版本 (支持 OpenAPI 3.0)
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.46/swagger-codegen-cli-3.0.46.jar -P v3/
mv v3/swagger-codegen-cli-*.jar v3/swagger-codegen-cli.jar
创建版本切换脚本
# 创建主控制脚本
sudo tee /usr/local/bin/swagger-codegen <<'EOF'
#!/bin/bash
DEFAULT_VERSION="v3" # 设置默认版本if [[ "$1" == "--use-v2" ]]; thenshiftjava -jar /opt/swagger-codegen/v2/swagger-codegen-cli.jar "$@"
elif [[ "$1" == "--use-v3" ]]; thenshiftjava -jar /opt/swagger-codegen/v3/swagger-codegen-cli.jar "$@"
elsejava -jar /opt/swagger-codegen/$DEFAULT_VERSION/swagger-codegen-cli.jar "$@"
fi
EOF# 添加执行权限
sudo chmod +x /usr/local/bin/swagger-codegen
验证双版本支持
-----服务端-----
# 测试 Swagger 2.0 规范生成
swagger-codegen --use-v2 generate \-i https://petstore.swagger.io/v2/swagger.json \-l aspnetcore \-o /tmp/petstore-v2# 测试 OpenAPI 3.0 规范生成
swagger-codegen --use-v3 generate \-i https://petstore3.swagger.io/api/v3/openapi.json \-l aspnetcore \-o /tmp/petstore-v3-----客户端-----
# 测试 Swagger 2.0 规范生成
swagger-codegen --use-v2 generate \-i https://petstore.swagger.io/v2/swagger.json \-l csharp-dotnet2 \-o /tmp/client-petstore-v2# 测试 OpenAPI 3.0 规范生成
swagger-codegen --use-v3 generate \-i https://petstore3.swagger.io/api/v3/openapi.json \-l csharp-dotnet2 \-o /tmp/client-petstore-v3# 检查生成结果
ls /tmp/petstore-v2 /tmp/petstore-v3
ls /tmp/client-petstore-v2 /tmp/client-petstore-v3
查看各版本帮助
swagger-codegen --use-v2 help
swagger-codegen --use-v3 help
语言支持差异
# 列出 v2 支持的语言
swagger-codegen --use-v2 langs# 列出 v3 支持的语言
swagger-codegen --use-v3 langs
运行效果: