1

我正在将我们的服务器从 SOAP 迁移到 REST。我正在使用 swashbuckle 生成 api 文档并使用 autorest 来创建客户端。

我有很多带有签名的方法,它们允许:

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)我还需要更改客户端代码,这可能会导致更多错误

有没有办法在不更改信号的情况下将这些属性标记为可为空?也许我错过了一些东西。为大多数方法创建一个请求类可以工作,但是我又生成了很多无用的代码。

任何想法,将不胜感激 :)

4

1 回答 1

1

您将不得不花时间进行转换——通常安全选项可以是接受对象形式的参数(它可以是 JObject 或类,甚至是最新版本的 C# 中的元组)

于 2017-03-15T14:05:40.583 回答