Asp.net web api Swagger WebApi在构建时创建json

Asp.net web api Swagger WebApi在构建时创建json,asp.net-web-api,swagger,Asp.net Web Api,Swagger,在我的web api的构建任务期间,是否有任何方法可以创建swagger json?我想使用json将其输入代码生成器并生成一个typescript定义文件 欢迎任何帮助 您可以使用以下命令行工具: nswag.exe webapi2swagger /assembly:"path/to/assembly.dll" /output:"path/to/swagger.json" 这将为给定DLL中的所有控制器生成一个带参数的招摇过市规范 了解更多信息 我使用的是Swashback.AspNetCo

在我的web api的构建任务期间,是否有任何方法可以创建swagger json?我想使用json将其输入代码生成器并生成一个typescript定义文件

欢迎任何帮助

您可以使用以下命令行工具:

nswag.exe webapi2swagger /assembly:"path/to/assembly.dll" /output:"path/to/swagger.json"
这将为给定DLL中的所有控制器生成一个带参数的招摇过市规范


了解更多信息

我使用的是Swashback.AspNetCore.Cli(注意:我使用的是.NET Core 3.1)

添加以下软件包:


接下来,创建工具清单:

dotnet新工具清单
安装Swashback CLI工具并将其添加到本地清单文件:

dotnet工具安装--版本5.3.1 Swashback.AspNetCore.Cli
现在可以使用dotnet命令生成swagger.json文件。例如:

dotnet-swagger-tofile——输出api.json-bin/debug/netcoreapp3.1/xxx.yourApi.dll v1
如果希望在每次生成时生成文件,请在csproj文件中使用生成后目标



NSwag为Web API控制器生成了招摇过市的规范:谢谢!有没有一种方法可以通过命令行工具一次为所有控制器创建(并组合)JSON?是否要将多个控制器组合到一个Swagger规范中?(=或将多个规范合并为一个?)我的WebAPI中有多个控制器。我不想为它们中的每一个创建一个招摇过市的规范文件。我想做一个单一的NSwag调用并创建一个单一的规范,而不指定WebAPI中的控制器(NSwag应该自动检测它们)。这应该很容易,给我几天时间。。。我将在其实现后立即关闭以下问题:Hi Rico,感谢您提供此功能!但有一个问题:当我想使用对象或数组作为URI参数时,为什么NSwag(或Swagger本身)会出现InvalidOperationException?这一定是NSwag实现中的一个bug。你能发布一个导致异常的示例Web API控制器吗?你能发布你收到的异常消息吗?如果我有这样的东西:[HttpPut][Route(“xyz/{data}”)]公共字符串xyz(MyClass数据){return“abc”;}我得到一个System.InvalidOperationException:参数“data”不能是对象或数据。您似乎主动拒绝了数据参数。clearify:我为MyClass创建了一个ModelBinder,这样就可以从字符串中解析它,反之亦然。好的,但调用服务时这是一个实际的运行时错误,NSwag工具中没有异常?我遇到错误:严重性代码描述项目文件行抑制状态错误NU1202 Package Swashback.AspNetCore.Cli 6.1.3与netcoreapp3.1(.NETCoreApp,版本=v3.1)不兼容。软件包swashback.AspNetCore.Cli 6.1.3支持:-net5.0(.NETCoreApp,版本=v5.0)/any-netcoreapp2.1(.NETCoreApp,版本=v2.1)/any-netcoreapp3.0(.NETCoreApp,版本=v3.0)/any