当前位置: 首页 > 知识库问答 >
问题:

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

长孙谦
2023-03-14

有没有人在将Swagger API定义转换为C#.NET客户端代码方面有很多经验?

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

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)

我们已经尝试在适当的地方将< code >“default”:null 添加到Swagger调用定义中,但是这并没有得到想要的代码(事实上,没有变化,所以可能不被支持)。

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

共有1个答案

岳安福
2023-03-14

好吧,看来斯威格编辑器CsharpDotNet2客户端代码生成器是罪魁祸首。

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

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

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

 类似资料:
  • 我正在使用Http客户端向外部API发送请求。根据文档,我可以向特定路由添加默认头,如下所示: 那对我不起作用。我也尝试过这个选项: 同样的效果。 在我用来提出请求的服务中,我有: 通过上述配置,我得到一个403响应,就好像令牌没有被发送一样。如果我把它添加到函数,但是它工作: 我正在寻找一种避免在我的服务或控制器中获取令牌的方法。将来,我可能会向API(或不同的API)发送其他请求,我不想为每个

  • 我有这种输入类型,我想为其中一个字段添加默认值。我想将 0 添加到示例输入中的值字段中。 有什么想法吗?

  • 我正在使用Laravel5构建一个多语言网站。 我知道,在Laravel中,我可以为如下路线定义: 在中间件中,我可以获取url路径的片段来检测语言并设置当前请求的区域设置。 但我找不到无论如何添加lang参数在默认情况下的路由像folowings: 或者有什么方法可以钩住框架的路由函数来附加默认参数进入所有路线时,我打电话?(ja是之前在中间件中设置的应用程序的当前区域设置) 谢谢

  • 本文向大家介绍Python如何定义有默认参数的函数,包括了Python如何定义有默认参数的函数的使用技巧和注意事项,需要的朋友参考一下 问题 你想定义一个函数或者方法,它的一个或多个参数是可选的并且有一个默认值。 解决方案 定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了。例如: 如果默认参数是一个可修改的容器比如一个列表、集合或者字典,可以使用

  • 问题内容: 我修改了一个表格,以这种方式向其中添加状态列 但是,对于创建的任何新ITEM,SQLite似乎都不会将N添加到该列中。语法是否错误,或者SQLite及其对默认值的支持是否存在任何问题。 我正在使用SQLite 3.6.22 问题答案: 对我来说看上去很好。 这是文档。 转储您的模式,并 在调用ALTER TABLE之后但在INSERT之前 验证 表结构是否存在。如果它在事务中,请 确保

  • 问题内容: 我有3个问题: Vaadin中的每个动作都会调用服务器。有没有一种方法可以避免对每个操作调用服务器?像在客户端拥有用于多次执行的特定操作的代码?就像在CSValidation附加组件中一样。 我想知道如何在Vaadin 7中添加Javascript / JQuery。在Vaadin 6中似乎很容易。但是,我无法在Vaadin 7中使其正常工作。我希望他们现在能使它变得更容易。谁能给我展