2010-11-17 4 views
1

У меня есть простой интерфейс, который я хочу, чтобы проверить это, но я have'nt понял, когда использовать URITemplate:когда использовать UriTemplate в службе WCF REST

как бы я получить доступ к 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} 

Однако, вы можете успокоительный URI, а не, как это:

xmldata/{id} 

Для тех случаев, добавьте UriTemplate. Если вам не нужна ничего, кроме семантики по умолчанию, не стесняйтесь ее оставить.

+0

если я использую для RESTful URI для данных POST, чем я могу это сделать? –

+0

@ Randolpho Пожалуйста, отредактируйте свой ответ, чтобы я мог вернуть свой случайный голос. –

+0

Ум ... нормально. Все отредактировано :) – Randolpho

Смежные вопросы