I've been following the very helpful MSDN guide on designing RESTful services with WCF, and have had great success with it.
However, I've noticed some strange behaviour with urlencoded characters - '#' encoded to %23, for example, which when specified in a path segment that is bound to a parameter will be stripped out; but when bound to a query string parameter will be read normally.
So, given my uri template of:
And a matched URL of
The 'search' parameter in the WCF method receives the value 'c', not 'c#'.
However, this uri template:
Bound to this uri:
Finally, this stripping behaviour only happens on certain characters - if I use the Path-centric version of the template, and fire this URL at it:
The parameter is deserialised correctly to 'Visual Basic'