2010-11-17 93 views
1

我有简单的界面,我想测试它,但我have'nt理解时使用URITemplate:时使用UriTemplate在REST WCF服务

我怎么会访问XMLDATA在这种情况下...?

[OperationContract] 
     [WebInvoke(Method = "GET", 
      ResponseFormat = WebMessageFormat.Xml, 
      BodyStyle = WebMessageBodyStyle.Wrapped)] 
     string XMLData(string id); 

public class RestServiceImpl : IRestServiceImpl 
    {  
     public string XMLData(string id) 
     { 
      return "my xml data:" + id; 
     } 

回答

1

UriTemplate是掩盖你的方法的一种相似。例如:

[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "myMethod/{id}")] 
string XMLData(string id); 

你现在可以调用该方法是这样的:

http://localhost/RestServiceImpl/myMethod/inputIdstring 

的,而不是...

http://localhost/RestServiceImpl/XMLData?id=inputIdstring 

我希望这有助于..

0

默认情况下,如果不指定UriTemplate,WCF会为您提供一个使用查询字符串格式,比如这个:

XMLData?id={id} 

但是,您可能需要一个RESTful URI,而不是像这样:

xmldata/{id} 

对于这些情况,您可以添加一个UriTemplate。如果您不需要除默认语义之外的任何内容,请随时离开它。

+0

如果我使用用于POST数据的RESTful URI比我要怎么做? – 2010-11-17 21:02:13

+0

@Randolpho请编辑您的答案,以便我可以收回我意外的投票。 – 2013-07-16 07:45:07

+0

呃...好的。全部编辑:) – Randolpho 2013-07-16 21:15:49