Swagger WebApi在构建时创建json

时间:2015-10-22 14:08:44

标签: asp.net-web-api swagger

有没有办法在我的web api的构建任务中创建swagger json?我想使用json将其提供给代码生成器并生成一个打字稿定义文件。

非常欢迎任何帮助!

2 个答案:

答案 0 :(得分:4)

我正在使用 Swashbuckle.AspNetCore.Cli (nb:我正在使用.NET Core 3.1) https://github.com/domaindrivendev/Swashbuckle.AspNetCore

添加以下软件包:

 <PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc5" />
    <PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="5.3.1" />
    <PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.3.1" />

下一步创建工具清单

dotnet new tool-manifest

安装Swashbuckle CLI工具并将其添加到本地清单文件中

dotnet tool install --version 5.3.1 Swashbuckle.AspNetCore.Cli

现在,您可以使用dotnet命令生成swagger.json文件。例如

dotnet swagger tofile --output api.json bin/debug/netcoreapp3.1/xxx.yourApi.dll v1

如果要在每次构建中生成文件,请在csproj文件中使用PostBuild目标。

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
    <Exec Command="dotnet tool restore" />
    <Exec Command="dotnet swagger tofile --output swagger.json $(OutputPath)\$(AssemblyName).dll v1 " />
  </Target>

答案 1 :(得分:1)

您可以使用NSwag这样的命令行工具:

nswag.exe webapi2swagger /assembly:"path/to/assembly.dll" /output:"path/to/swagger.json"

这将为给定DLL中的所有控制器生成Swagger规范。

了解更多信息read this page