我正在做一个ASP.NET Core WebAPI项目,我想找到一种在构建时生成swagger json的方法。
由于我正在使用4个环境,我希望有4个swagger.json,并选择不同的名称,例如:
- swagger_{appName}dev{buildNumber}.json
- swagger_{appName}demo{buildNumber}.json
- swagger_{appName}int{buildNumber}.json
- swagger_{appName}staging{buildNumber}.json
也可以编辑JSON中的字段吗?我想编辑(取决于环境)以下字段:host、schemes和basePath。
我正在使用Swashbuckle.AspNetCore,但它似乎没有选项来完成这样的任务,或者我错了?
Thanks in advance
3条答案
按热度按时间bvn4nwqk1#
您可以选择从命令行生成OpenApi json文件,而无需使用
Swashbuckle.AspNetCore.Cli
nuget包进行部署。该命令看起来像这样,并且可以作为“构建后”脚本添加
更多详情请访问https://github.com/domaindrivendev/Swashbuckle.AspNetCore#swashbuckleaspnetcorecli
我不确定是否可以立即为每个环境生成单独的文件
4nkexdtk2#
下面是关于在构建时生成
swagger.json
文件的a good article。下面是总结
1.在项目的根文件夹中执行以下命令
1.然后执行以下命令
1.将以下代码段添加到Web Project(包含swagger NuGet包的项目)的.csproj文件中
用你想要的路径替换
PATH_WHERE_YOU_WANT
(使用已经存在的文件夹,如果文件夹不存在,这个脚本不会创建文件夹)7gcisfzg3#
简单的方法是使用PowerShell任务来更新json文件并使用另一个名称保存。
简单的工作流程:
1.通过Get-Content脚本读取文件
1.使用ConvertFrom-Json将内容转换为对象
1.将属性值设置为更新对象
1.使用ConvertTo-Json将对象转换为JSON格式的字符串
1.使用Set-Content将内容写入文件
详细代码可以参考这个线程:how do I update json file using powershell。
内部版本号值存储在预定义变量中:
Build.BuildNumber
(PowerShell:$env:BUILD_BUILDNUMBER
)