Когда использовать 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
Надеюсь, это поможет..
По умолчанию, если вы не укажете UriTemplate
WCF предоставит вам тот, который использует формат строки запроса, такой как этот:
XMLData?id={id}
Однако вместо этого вам может понадобиться RESTful URI, например так:
xmldata/{id}
Для этих случаев вы добавляете UriTemplate
, Если вам не нужна ничего, кроме семантики по умолчанию, не стесняйтесь оставить это.