我正在将服务器从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?也许我错过了什么。为大多数方法创建请求类可能有效,但是我再次生成了很多无用的代码。
任何想法都将受到赞赏:)
答案 0 :(得分:1)
你将不得不花费一次时间来转换 - 通常安全的选项可以是对象形式的accept参数(它可以是JObject或类,甚至是最新版本的C#中的Tuple)