如何在Swagger API定义的C#客户端代码中添加默认参数值

时间:2017-11-15 02:03:02

标签: c# swagger-editor

有没有人有过将Swagger API定义转换为C#.NET客户端代码的经验?

大多数情况下,Swagger Editor工作正常,但我们遇到的问题是某些调用生成的代码有一堆必需但可以为空的参数。例如(截断的参数列表仅用于说明):

GetCustomers(bool? includeDeceased, string postalCode, string id, string dateAdded)

我们希望使用默认值定义生成的参数列表,以避免必须显式提供空参数。所以像这样:

GetCustomers(bool? includeDeceased = null, string postalCode = null, int? id = null, string dateAdded = null)

这允许我们进行以下调用:

GetCustomers(postalCode: "12345")

而不是:

GetCustomers(includeDeceased: null, postalCode="12345", id: null, dateAdded: null)

我们已尝试在适当的情况下将"default": null添加到Swagger调用定义中,但这并不会产生所需的代码(实际上,没有更改,因此可能不受支持)。

没有手动修改生成的客户端代码 - 我们希望避免这样做,以便我们可以快速轻松地将代码更新为最新的API定义 - 我们有点卡住了。

1 个答案:

答案 0 :(得分:1)

好吧,Swagger编辑器 CsharpDotNet2 客户端代码生成器似乎是罪魁祸首。

我刚刚尝试了bog标准的 csharp 客户端代码生成器,并将= null添加到未标记为"required": true的所有参数中。

所以我猜它是手动编辑CsharpDotNet2生成器或者如果可以的话使用csharp生成器。

更新而且,如果您想知道,事实证明 csharp 生成器实际上是较新的,针对.NET 4.5。我在想,如果一个人的名字中有“DotNet”而另一个人没有那个,那就是那个。傻我。