Question

I have some resource- UserProfile

public UserProfile
{
   public string Email{get;set;}
   public string Password{get;set;}
}

I want to change Email and Password separatly (only one for user at same time). I have web api controller for example /api/user/123 that handle requests in RESTful style. Follow the RESTful style i should have one method PUT which update the resource, but i have two task that update the same resource api/user/123. I need to add some feature to PUT request body like {email:'test@domain.com', changeType:'email'} or {password:'12345678',changeType:'password' } to write some if in my PUT method ? Or there is some other way to update my resource in RESTful style ?

Was it helpful?

Solution 2

You have two options for updating email and password separately.

A) Don't use PUT, use POST

B) Create child resources for updating the individual elements, e.g.

PUT /api/user/123/email

And

PUT /api/user/123/password

OTHER TIPS

[HttpPut]
public HttpResponseMessage PutProduct(Product p)
{
    Product pro = _products.Find(pr => pr.Id == p.Id);

    if (pro == null)
        return new HttpResponseMessage(HttpStatusCode.NotFound);

    pro.Id = p.Id;
    pro.Name = p.Name;
    pro.Description = p.Description;

    return new HttpResponseMessage(HttpStatusCode.OK);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top