本节教程是前三节的延续,在前面我们创建了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请求。

创建包含CRUD操作的Web API接口4:实现Put方法的更多相关文章

  1. 创建包含CRUD操作的Web API接口2:实现Get方法

    本节是前一节的延续,上一节中我们已经为我们的Web API项目创建必要的基础设施. 在本节中,我们将在我们的控制器类中实现操作方法,这些方法用来处理HTTP GET请求. 根据Web API命名约定, ...

  2. 创建包含CRUD操作的Web API接口3:实现Post方法

    本节是前面两节的延续,前面我们为Web API创建了必要的基础设施,并实现了Get方法.在这里,我们将在Web API中实现POST方法. 在RESTful架构中,使用HTTP POST请求用来在数据 ...

  3. 创建包含CRUD操作的Web API接口-第一部

    在这里,我们将创建一个新的Web API项目,它将使用实体框架实现Get,POST.PUT和DELETE方法来实现CRUD操作. 首先,在Visual Studio 2013 for Web expr ...

  4. 创建包含CRUD操作的Web API接口5:实现Delete方法

    本节是前面四节的延续,在前面几节中我们创建了Web API并添加了必要的基础设施,实现了Get.Post.和Put方法.本节中,我们将介绍如何在Web API中实现Delete方法. 在RESTful ...

  5. 【ASP.NET Web API教程】2.1 创建支持CRUD操作的Web API

    原文 [ASP.NET Web API教程]2.1 创建支持CRUD操作的Web API 2.1 Creating a Web API that Supports CRUD Operations2.1 ...

  6. Http下的各种操作类.WebApi系列~通过HttpClient来调用Web Api接口

    1.WebApi系列~通过HttpClient来调用Web Api接口 http://www.cnblogs.com/lori/p/4045413.html HttpClient使用详解(java版本 ...

  7. Web API接口设计经验总结

    在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔<Web API应用架构在Winform混合框架中的应用(1)>.<Web API应用架构在Winfo ...

  8. Web API接口设计(学习)

    1.在接口定义中确定MVC的GET或者POST方式 由于我们整个Web API平台是基于MVC的基础上进行的API开发,因此整个Web API的接口,在定义的时候,一般需要显示来声明接口是[HttpG ...

  9. 不使用jQuery对Web API接口POST,PUT,DELETE数据

    前些天,Insus.NET有演示Web API接口的操作: <怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html ...

随机推荐

  1. GitBook github

    创建一个新的仓库 创建一个新文件,名为SUMMARY.md 创建一本书首先进入gitbook的官网:https://www.gitbook.com/ 创建账户https://github.com/ 在 ...

  2. springboot框架在容器加载完成之后执行某个方法

    问题描述: 想在websocket实现的Handler中执行一些初始化操作,但是初始化操作使用到了@Autowired自动注入的变量,而且是保护类型.第一个想法是放到Handler构造函数中执行,但是 ...

  3. SpringBoot(3)自定义Filter

    SpringBoot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,当然我们可以自定 义Filter. 自定义Filter需要两个 ...

  4. [转]OpenTK学习笔记(1)-源码、官网地址

    OpenTK源码下载地址:https://github.com/opentk/opentk OpenTK使用Nuget安装命令:OpenTK:Install-Package OpenTK -Versi ...

  5. Android Sensor 架构深入剖析【转】

    本文转载自: 1.Android sensor架构 Android4.0系统内置对传感器的支持达13种,它们分别是:加速度传感器 (accelerometer).磁力传感器(magnetic fiel ...

  6. win10系统优化方法及chkdsk工具使用

    发现安装了测试版的Win10真的很慢!其实Win10在每次升级后,的确会比老版慢上很多,这只要是因为新增加的安全功能,往往会对系统速度造成拖累.但有很多方法都可以让你的系统运行如飞. http://b ...

  7. 修改Jupyter Notebook默认文件存储路径(已安装Anaconda)

    https://blog.csdn.net/weixin_44799144/article/details/91823079 修改Jupyter Notebook默认文件存储路径首先,安装好Anaco ...

  8. linux命令(55):环境变量:LIBRARY_PATH 和 LD_LIBRARY_PATH的区别

    添加环境变量:https://www.cnblogs.com/lovychen/p/5583703.html PATH是可执行文件的环境变量. LIBRARY_PATH 和 LD_LIBRARY_PA ...

  9. python网络编程 - tcp

    网络编程 低级别的网络服务 高级别的网络服务 socket又称“套接字”,应用程序通过“套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. tcp 传输控制协议(Tra ...

  10. Java进程故障排查思路及步骤

    故障场景 Java进程出现问题,通常表现出如下现象: Web应用响应时间长/超时,甚至不响应 CPU使用率极高/低,频繁出现Full GC,甚至OutOfMemoryError 响应时间长.超时,甚至 ...