I have tried these
and
Optional query string parameters in URITemplate in WCF
But nothing works for me. Here is my code:
[WebGet(UriTemplate = "RetrieveUserInformation/{hash}/{app}")]
public string RetrieveUserInformation(string hash, string app)
{
}
It works if the parameters are filled up:
https://127.0.0.1/Case/Rest/Qr/RetrieveUserInformation/djJUd9879Hf8df/Apple
But doesn't work if app
has no value
https://127.0.0.1/Case/Rest/Qr/RetrieveUserInformation/djJUd9879Hf8df
I want to make app
optional. How to achieve this?
Here is the error when app
has no value:
Endpoint not found. Please see the service help page for constructing valid requests to the service.
You have two options for this scenario. You can either use a wildcard (
*
) in the{app}
parameter, which means "the rest of the URI"; or you can give a default value to the{app}
part, which will be used if it's not present.You can see more information about the URI Templates at http://msdn.microsoft.com/en-us/library/bb675245.aspx, and the code below shows both alternatives.
A complementary answer regarding default values in
UriTemplate
s using query parameters. The solution proposed by @carlosfigueira works only for path segment variables according to the docs.