繁体   English   中英

asp.net Web API HTTP PUT 方法

[英]asp.net web API HTTP PUT method

我有一些资源 - UserProfile

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

我想分别更改电子邮件和密码(用户只能同时更改一个)。 我有 web api 控制器,例如 /api/user/123 以 RESTful 风格处理请求。 遵循 RESTful 风格,我应该有一个更新资源的方法PUT ,但我有两个任务更新相同的资源 api/user/123。 我需要向 PUT 请求正文添加一些功能,例如 {email:'test@domain.com', changeType:'email '} 或 {password:'12345678', changeType:'password' } 以在我的 PUT 方法中编写一些功能? 或者还有其他方法可以以 RESTful 风格更新我的资源?

[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);
}

您有两个选项可以分别更新电子邮件和密码。

A) 不要使用 PUT,使用 POST

B) 创建用于更新单个元素的子资源,例如

PUT /api/user/123/email

PUT /api/user/123/password

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM