Can I pass non-string to WCF RESTful service using UriTemplate?

Eugene Yokota picture Eugene Yokota · Feb 13, 2009 · Viewed 38k times · Source

Can I do the following?

[OperationContract]
[WebGet(UriTemplate = "/foo/{id}")]
string GetFoo(int id);

I'd like my service to function as both RESTful service and RPC-style SOAP service. If possible I'd like to retain int as int, and not do parsing by hand.

Answer

Cameron Taggart picture Cameron Taggart · May 5, 2009

As dthrasher mentioned, move id to the query part of the URI. This worked for me:

[OperationContract]
[WebGet(UriTemplate = "/foo?id={id}")]
string GetFoo(int id);

See "URI scheme" on wikipedia for more info about the different parts of a URI: http://en.wikipedia.org/wiki/URI_scheme