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

    本节教程是前三节的延续,在前面我们创建了Web API和必要的基础设施,也实现了Get和Post方法。接下来,我们将在Web API中实现Put方法。

    RESTful架构中,HTTP PUT方法用于在数据源更新现有记录。

    让我们在StudentController中创建一个操作方法用来使用实体框架在数据库中更新现有的学生记录。用来处理Http Put类型请求的Action方法,取名必须以Put开头,或者直接叫Put()。例如:PUT(), Put(), PutStudent(), PutStudents()都是合格的Put类型方法名称。

    下面的例子演示了用来处理HTTP Put请求的Action方法。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class StudentController : ApiController
    {
        public StudentController()
        {
        }
        public IHttpActionResult Put(StudentViewModel student)
        {
            if (!ModelState.IsValid)
                return BadRequest("Not a valid model");
            using (var ctx = new SchoolDBEntities())
            {
                var existingStudent = ctx.Students.Where(s => s.StudentID == student.Id)
                                                        .FirstOrDefault<Student>();
                if (existingStudent != null)
                {
                    existingStudent.FirstName = student.FirstName;
                    existingStudent.LastName = student.LastName;
                    ctx.SaveChanges();
                }
                else
                {
                    return NotFound();
                }
            }
            return Ok();
        }
    }

    正如您所看到的,Put动作方法包括一个StudentViewModel类型的参数。该方法先查询出之前创建的Student对象,然后修改对象。

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

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

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

    接下来,我们将在Web API中实现删除操作方法来处理HTTP Delete请求。

  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/zxh1919/p/7873920.html
Copyright © 2011-2022 走看看