WebApi将defualt值设置为所有参数

时间:2017-03-15 13:36:13

标签: c# .net asp.net-web-api2 swagger autorest

我正在将服务器从SOAP迁移到REST。我使用swashbuckle生成api文档并自动恢复以创建客户端。

我有很多签名允许的方法:

1)可以为空的值

2)可能允许空值的字符串

例如这样的方法:

public void SetGlobalDataForSite(string wsKey, int? siteId, string title,
 string keywords, string homepagetitle, bool isValidValue)

不需要为siteId,关键字或主页标题设置值。

据我所知,允许这些值为null我应该将方法转换为如下:

public void SetGlobalDataForSite(string wsKey, string title, bool isValidValue,
 int? siteId = null, string keywords = null, string homepagetitle = null)

现在这会导致很多问题:

1)由于我正在更改签名,因此非常容易出错

2)它有很多工作,我有大约300种方法需要改变

3)我还需要更改可能导致更多错误的客户端代码

有没有办法将这些属性标记为可为空而不更改signarue?也许我错过了什么。为大多数方法创建请求类可能有效,但是我再次生成了很多无用的代码。

任何想法都将受到赞赏:)

1 个答案:

答案 0 :(得分:1)

你将不得不花费一次时间来转换 - 通常安全的选项可以是对象形式的accept参数(它可以是JObject或类,甚至是最新版本的C#中的Tuple)