建立包含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请求的。

相关文章
相关标签/搜索