簡體   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