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

时间:2016-03-14 11:29:54

标签: c# .net code-generation swagger

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

我知道official tool,但这需要JDK 7,这对我来说当前不是一个选项。

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

2 个答案:

答案 0 :(得分:3)

您可以使用在线swagger codegen创建客户端而无需安装任何内容:

https://generator.swagger.io/

您可以选择POST / gen / clients / {language}并输入这样的正文:

{
  "options": {},
  "swaggerUrl": "http://petstore.swagger.io/v2/swagger.json"
}

使用您自己的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"
  }
}

答案 1 :(得分:0)

NSwag 为客户端生成提供了多种选项,包括 CLI、代码或 Windows 应用程序。

enter image description here

您可以check完成关于 NSwag 的文章