如何在WCF REST服务中拥有可选参数

本文关键字:拥有 参数 服务 WCF REST | 更新日期: 2023-09-27 18:09:08

我要找的是一种方式,我可以传递任何东西到一个特定的url,所以我可以解析它自己。像这样:

    [OperationContract]
    [WebGet(UriTemplate = "/whatever/blabla/{query}", RequestFormat = WebMessageFormat.Xml)]
    string AddRouteForUser(string query);

之后,我可以自己解析查询以获得我需要的值。这可能吗?有没有更好的办法?

感谢(编辑标题)

如何在WCF REST服务中拥有可选参数

一个选择是使用查询字符串参数,因为根据定义,它们是标记在查询上的选项的可选属性包。这使得路径成为剩余资源的不可变标识符。

/whatever/blabla?some=data&whichis=optional

如果没有对数据和其他资源的具体了解,很难说

编辑:

QueryStrings可以是可选的。
参见Anand @ https://connect.microsoft.com/VisualStudio/feedback/details/451296/rest-wcf-uritemplate-optional-querystring-parameters的评论

"你可以从WebGet或WebInvoke属性的UriTemplate中省略Query字符串,并使用WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters"

最后,我将使用OperationContext来获取完整的url并自己解析它。我输入WebGet this/whatever/{query}这样我就知道我要处理什么了