Когда использовать UriTemplate в службе REST WCF

У меня есть простой интерфейс, который я хочу проверить, но я не понял, когда использовать URITemplate:

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

2 ответа

Решение

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  

Надеюсь, это поможет..

По умолчанию, если вы не укажете UriTemplateWCF предоставит вам тот, который использует формат строки запроса, такой как этот:

XMLData?id={id}

Однако вместо этого вам может понадобиться RESTful URI, например так:

xmldata/{id}  

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

Другие вопросы по тегам