Additional/Optional query string parameters in URI Template in WCF

Posted by Rajesh Kumar on Stack Overflow See other posts from Stack Overflow or by Rajesh Kumar
Published on 2011-02-11T13:43:04Z Indexed on 2012/09/29 9:38 UTC
Read the original article Hit count: 424

Filed under:
|

I have written a simple REST Service in WCF in which I have created 2 method using same URI Template but with different Method(POST and GET). For GET method I am also sending additional query parameters as follows:

    [WebInvoke(Method = "POST", UriTemplate = "users")]
    [OperationContract]
    public bool CreateUserAccount(User user)
    {
        //do something
        return restult;
    }

    [WebGet(UriTemplate = "users?userid={userid}&username={userName}")]
    [OperationContract]
    public User GetUser(int userid, string userName)
    {
       // if User ID then 
       //   Get User By UserID
       //else if User Name then 
       //   Get User By User Name
       //if no paramter then do something

    }

when I call CreateUserAccount with method POST it is working fine but when I call GetUser method using GET and sending only one query string parameter(userID or UserName) it is giving error "HTTP Method not allowed" but if send both parameters its wokrs fine.

Can anyone help me?

© Stack Overflow or respective owner

Related posts about c#

Related posts about wcf