官方博客

用ASP.NET Web API技術開發HTTP接口(二)

標簽 ASP.NET , API , EntityFramework 閱讀 25264 次 發布日期 2015-8-5

荒野行动刷99999点卷 www.jfaju.icu 在第一部分,我們創建了一個基本的ASP.NET Web API項目,新建成功了數據表,然后添加了一些測試數據,最后創建了API控制器,用json格式把數據表里面的內容成功輸出到瀏覽器上。接下來我們將繼續完成對數據的添加、修改、刪除操作。

添加操作

public HttpResponseMessage Post(Friend friend)
 {
    if (ModelState.IsValid)
    {
        db.Friends.Add(friend);
        db.SaveChanges();
        return Request.CreateResponse(HttpStatusCode.Created, friend);
    }
    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}

首先對傳入的數據進行驗證,如果驗證通過,則添加到數據庫中,否則輸出錯誤信息。

修改、刪除操作

public HttpResponseMessage Put(Friend friend)
{
    if (ModelState.IsValid)
    {
        db.Entry(friend).State = EntityState.Modified;
        db.SaveChanges();
        var response = Request.CreateResponse(HttpStatusCode.OK, friend);
        return response;
    }
    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}

public HttpResponseMessage Delete(int id)
{
    var friend = db.Friends.Find(id);
    if (friend != null)
    {
        db.Friends.Remove(friend);
        db.SaveChanges();
        return Request.CreateResponse(HttpStatusCode.OK, friend);
    }
    return Request.CreateResponse(HttpStatusCode.NotFound);
}

和添加操作類似,用Linq語句操作Entity Framework,代碼非常簡潔高效。不同的方法名也對應了不同的操作,Get對應讀取操作,Post對應添加操作,Put對應修改操作,Delete對應刪除操作。

API接口測試

Advanced Rest Client是Chrome瀏覽器的一個插件,因此在瀏覽器上就可以直接調試各類API接口,比安裝其他軟件方便。只是這個插件要到Chrome應用商店去下載,因為被國內屏蔽的原因,需要翻墻后才能訪問,下載地址是:https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

測試過程比較簡單,注意要選擇對應的方法Get、Post、Put或Delete。

下面這是調用刪除數據的接口截圖。

下面是對這次API接口程序每個方法和URL地址的對應表格。

控制器方法URL地址功能
Get/api/friend讀取全部數據
Post/api/friend (Friend model)添加一條記錄
Put/api/friend (Friend model)修改一條記錄
Delete/api/friend/id刪除一條記錄