从 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 的主要贡献者。
我可以使用什么工具来生成 .NET 客户端以从 Swagger 定义中使用?
例如,我开始尝试 NSwag Studio,我希望能够生成看起来像我用来创建的存储库 类 的代码。
希望删除问题的投票者注意:问题的答案和评论对读者有用,因此删除不是一个好主意。 由于 SO 不允许寻求书籍、工具、软件库推荐的问题,因此问题应保持关闭状态或(甚至更好)考虑迁移到 http://softwarerecs.stackexchange.com
您可以使用 swagger 项目中的 swagger-codegen
工具。它生成使用
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 的主要贡献者。