从 Swagger 生成 .NET 客户端

Generate .NET Client from Swagger

我可以使用什么工具来生成 .NET 客户端以从 Swagger 定义中使用?

例如,我开始尝试 NSwag Studio,我希望能够生成看起来像我用来创建的存储库 类 的代码。

希望删除问题的投票者注意:问题的答案和评论对读者有用,因此删除不是一个好主意。 由于 SO 不允许寻求书籍、工具、软件库推荐的问题,因此问题应保持关闭状态或(甚至更好)考虑迁移到 http://softwarerecs.stackexchange.com

您可以使用 swagger 项目中的 swagger-codegen 工具。它生成使用

的 C# 文件
  • RestClient 用于 HTTP 调用
  • Newtonsoft.Json 用于 json 编组
  • .NET DataContract 模型。

您可以下载 cli app or use the online editor。宠物店示例模型如下所示:

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Newtonsoft.Json;

namespace IO.Swagger.Model {

    /// <summary>
    /// 
    /// </summary>
    [DataContract]
    public class Order {
      /// <summary>
      /// Gets or Sets Id
      /// </summary>
      [DataMember(Name="id", EmitDefaultValue=false)]
      [JsonProperty(PropertyName = "id")]
      public long? Id { get; set; }

      /// <summary>
      /// Gets or Sets PetId
      /// </summary>
      [DataMember(Name="petId", EmitDefaultValue=false)]
      [JsonProperty(PropertyName = "petId")]
      public long? PetId { get; set; }
 .... snip ....
}

您可能想尝试 OpenAPI Generator (https://github.com/OpenAPITools/openapi-generator),它同时支持 OpenAPI 规范 v2 和 v3。 (OpenAPI 规范 v2 以前称为 Swagger 规范 v2)

有 3 种不同的 C# 客户端生成器:

  • csharp
  • csharp-netcore
  • csharp-dotnet2

该项目还包括 2 个 C# 服务器生成器:csharp-nancyfx、aspnetcore

如果您需要帮助,请在 Github 存储库中提出问题。

披露:我是 OpenAPI Generator 和 Swagger Codegen 的主要贡献者。