建立包含CRUD操做的Web API接口5:實現Delete方法

本節是前面四節的延續,在前面幾節中咱們建立了Web API並添加了必要的基礎設施,實現了Get、Post、和Put方法。本節中,咱們將介紹如何在Web API中實現Delete方法。數據庫

在RESTful架構中,HTTP DELETE請求用來刪除數據源中的現有記錄。c#

如今,讓咱們在StudentController中建立一個Delete操做方法,該方法將使用實體框架刪除在數據庫中現有的學生記錄。Delete類型的操做方法名稱必須以Delete開頭或者直接命名爲「Delete」。例如:DELETE(), Delete(), DeleteStudent(), DeleteAllStudents()都是用來處理Http Delete請求的有效的Delete方法的名稱。api

下面的例子演示了用來處理HTTP Delete請求的Delete操做方法的實現。架構

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public  class  StudentController : ApiController
{
     public  StudentController()
     {
     }
     public  IHttpActionResult Delete( int  id)
     {
         if  (id <= 0)
             return  BadRequest( "Not a valid student id" );
         using  (var ctx =  new  SchoolDBEntities())
         {
             var student = ctx.Students
                 .Where(s => s.StudentID == id)
                 .FirstOrDefault();
             ctx.Entry(student).State = System.Data.Entity.EntityState.Deleted;
             ctx.SaveChanges();
         }
         return  Ok();
     }
}

正如您所看到的,Delete操做方法包括一個int類型的id參數,由於它只須要傳入一個id就能夠刪除記錄。它從數據庫獲取與指定的id想匹配的現有學生信息,而後將其狀態標記爲刪除。這將從數據庫中刪除一個學生的信息。框架

如今,您能夠使用Fiddler發送HTTP DELETE請求,返回信息以下所示。學習

正如你在上面的圖中所看到的,HTTP DELETE請求urlhttp://localhost:64189/api/student?id=1包含查詢字符串id。這個id查詢字符串將做爲一個id參數傳遞到Delete()方法。成功執行後返回200 OK響應狀態。url

所以您能夠建立Get、Post、Put和Delete方法來實現處理HTTP Get、Post、Put和Delete請求。spa

如今,讓咱們在後續的章節中學習如何將這個Web API項目應用到ASP.NET MVC和AngularJS中。code

相關文章
相關標籤/搜索