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

本節是前面兩節的延續,前面咱們爲Web API建立了必要的基礎設施,並實現了Get方法。在這裏,咱們將在Web API中實現POST方法。數據庫

在RESTful架構中,使用HTTP POST請求用來在數據源中建立一個新的記錄。讓咱們在StudentController中建立一個Post操做方法來使用實體框架在數據庫中插入新學生記錄。c#

處理HTTP POST請求的操做方法命名必須以Post開頭。能夠直接叫Post,也能夠叫以Post開頭的任何名字,例如:POST(), Post(), PostNewStudent(), PostStudents()等都是合格的命名。架構

下面的例子演示了用來處理HTTP Post請求Post操做方法。框架

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public  class  StudentController : ApiController
{
     public  StudentController()
     {
     }
     //Get action methods of the previous section
     public  IHttpActionResult PostNewStudent(StudentViewModel student)
     {
         if  (!ModelState.IsValid)
             return  BadRequest( "Invalid data." );
         using  (var ctx =  new  SchoolDBEntities())
         {
             ctx.Students.Add( new  Student()
             {
                 StudentID = student.Id,
                 FirstName = student.FirstName,
                 LastName = student.LastName
             });
             ctx.SaveChanges();
         }
         return  Ok();
     }
}

 

正如您所看到的,咱們將Action方法命名爲PostNewStudent。你能夠按你的要求取任何名稱,但必須以「Post」這個詞開頭。PostNewStudent()操做方法包括StudentViewModel類型的參數,該參數包括新學生的全部的信息。學習

在Post方法,咱們首先須要使用ModelState.IsValid驗證模型,這將確保學生對象包括全部必要的信息。若是它是無效的,那麼你能夠返回BadRequest響應。若是它是有效的,那麼使用實體框架上下文添加學生並返回200 OK狀態的響應。spa

注意:這只是一個演示項目,若是須要的話,您能夠在返回信息中返回新建立的學生對象的Id。code

如今,您能夠使用Fiddler發送HTTP POST請求,以下所示。對象

正如你在上面的圖中所看到的,HTTP POST請求包括JSON格式的StudentViewModel對象的請求主體。ci

成功執行後返回200 OK響應狀態。string

接下來,咱們將學習如何在Web API中實現Put動做方法來處理HTTP Put請求的。

相關文章
相關標籤/搜索