【问题标题】:WebApi set defualt values to all parametersWeb Api 为所有参数设置默认值
【发布时间】:2017-08-06 06:55:27
【问题描述】:

我正在将我们的服务器从 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) 我还需要更改客户端代码,这可能会导致更多错误

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 是的,我搞砸了,最后只是重写了所有的方法调用,结果证明这是最安全的选择,而且可能是最快的:)
    猜你喜欢
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    相关资源
    最近更新 更多