从Swagger生成.NET客户端

时间:2019-01-08 15:12:19

标签: asp.net-core

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

例如,我开始尝试使用NSwag Studio,并且希望能够生成类似于我以前创建的Repository类的代码。

2 个答案:

答案 0 :(得分:2)

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

的c#文件
  • RestClient进行HTTP调用
  • Newtonsoft.Json用于JSON编组
  • .NET DataContract用于模型。

您可以下载cli app或使用online editor。 petstore示例模型如下所示:

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 ....
}

答案 1 :(得分:2)

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

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

  • csharp
  • csharp-refactor
  • csharp-dotnet2

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

如果需要帮助,请在Github存储库中打开一个问题。