如何使用NSwag.CodeGeneration.CSharp?

时间:2019-11-04 21:37:34

标签: nswag

我正在尝试从.yaml文件生成.NET Core Web API控制器。

有运行此命令的示例:

dotnet "/.../dotnet-nswag.dll" openapi2cscontroller /input:https://somewhere.com/swagger.yaml /classname:MyResource /namespace:Com.Example.MyResource /output:Controllers/ResourceController.cs /UseLiquidTemplates:true /AspNetNamespace:"Microsoft.AspNetCore.Mvc" /ControllerBaseClass:"Microsoft.AspNetCore.Mvc.Controller"

此命令与NSwag.CodeGeneration.CSharp有什么关系?

此参数是什么? "/.../dotnet-nswag.dll"是否来自npm工具的安装?

如何在Visual Studio的Spec项目中生成ApiControllers?

谢谢。

2 个答案:

答案 0 :(得分:0)

生成器的实际实现在NSwag.CodeGeneration.CSharp nuget包中。

您可以在代码中直接使用它来以编程方式阅读规范并生成字符串代码。 dotnet-nswag.dll是一个命令行工具,其命令可转换为对该程序包中生成器的调用。

答案 1 :(得分:0)

对于在dotnet cli中的命令行用法,最简单的选项是执行运行命令,将nswag配置文件作为参数传递,并带有生成源代码所需的设置。

dotnet C:\Users\demo\.nuget\packages\nswag.msbuild\13.4.2\tools\NetCore31\dotnet-nswag.dll run config.nswag
NSwag command line tool for .NET Core NetCore31, toolchain v13.4.2.0 (NJsonSchema v10.1.11.0 (Newtonsoft.Json v12.0.0.0))
Visit http://NSwag.org for more information.
NSwag bin directory: C:\Users\demo\.nuget\packages\nswag.msbuild\13.4.2\tools\NetCore31

Executing file 'config.nswag' with variables ''...
Done.

Duration: 00:00:01.8555952

或者您可以使用其他命令,例如您在Wiki中详细介绍的命令(openapi2cscontroller) https://github.com/RicoSuter/NSwag/wiki/CommandLine