如何从Swagger 1.2规范生成C#客户端?

Jac*_*eja 11 .net c# code-generation swagger

每个平台似乎都有数以百万计的选择,但我很难找到一个简单的C#解决方案.我发现的所有这些似乎给了我麻烦:要么他们根本不工作(例如http://swaggercodegen.azurewebsites.net/),要么只支持2.0(例如AutoRestNSwag).一半的工具甚至不清楚它们支持的版本:-(

我知道官方工具,但这需要JDK 7,这对我来说当前不是一个选择.

在绝望中我甚至尝试将swagger规范转换为2.0,但是我试过的一半转换工具不起作用,给出了相互矛盾的建议,或者我无法弄清楚如何使用(我发现自己很快陷入了nodejs. ..这真的是一个勇敢的新世界吗?!带回WSDL ;-)).

feh*_*guy 6

您可以使用在线swagger代码生成器来创建客户端,而无需安装任何工具:

https://generator.swagger.io/

您可以选择POST / gen / clients / {language}并输入如下内容:

{
  "options": {},
  "swaggerUrl": "http://petstore.swagger.io/v2/swagger.json"
}
Run Code Online (Sandbox Code Playgroud)

输入您自己的URL以访问规范。如果您需要传递任何选项,则可以将它们放options入哈希中。生成器也提供了C#可用选项的列表:

https://generator.swagger.io/api/gen/clients/csharp-dotnet2

{
  "packageName": {
    "opt": "packageName",
    "description": "C# package name (convention: Camel.Case).",
    "type": "string",
    "default": "IO.Swagger"
  },
  "packageVersion": {
    "opt": "packageVersion",
    "description": "C# package version.",
    "type": "string",
    "default": "1.0.0"
  },
  "clientPackage": {
    "opt": "clientPackage",
    "description": "C# client package name (convention: Camel.Case).",
    "type": "string",
    "default": "IO.Swagger.Client"
  }
}
Run Code Online (Sandbox Code Playgroud)