zoukankan      html  css  js  c++  java
  • 创建包含CRUD操作的Web API接口3:实现Post方法

    本节是前面两节的延续,前面我们为Web API创建了必要的基础设施,并实现了Get方法。在这里,我们将在Web API中实现POST方法。

    在RESTful架构中,使用HTTP POST请求用来在数据源中创建一个新的记录。让我们在StudentController中创建一个Post操作方法来使用实体框架在数据库中插入新学生记录。

    处理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状态的响应。

    注意:这只是一个演示项目,如果需要的话,您可以在返回信息中返回新创建的学生对象的Id。

    现在,您可以使用Fiddler发送HTTP POST请求,如下所示。

    正如你在上面的图中所看到的,HTTP POST请求包括JSON格式的StudentViewModel对象的请求主体。

    成功执行后返回200 OK响应状态。

    接下来,我们将学习如何在Web API中实现Put动作方法来处理HTTP Put请求的。

  • 相关阅读:
    emacs command
    emacs format
    attach
    虚拟ip
    emacs redo
    mariadb
    unsafe
    select, poll, epoll
    03基于python玩转人工智能最火框架之TensorFlow介绍
    03SQL语句
  • 原文地址:https://www.cnblogs.com/zxh1919/p/7873914.html
Copyright © 2011-2022 走看看