使用 ASP.NET Core MVC 创建 Web API

使用 ASP.NET Core MVC 创建 Web API(一)

使用 ASP.NET Core MVC 创建 Web API(二)

使用 ASP.NET Core MVC 创建 Web API(三)

使用 ASP.NET Core MVC 创建 Web API(四)

十五、添加更新方法

Http定义了与 服务器的交互方法,其中除了一般我们用的最多的GET,POST这两个方法之外, 其实还有PUT和DELETE。

PUT通常用于向服务器发送请求,如果URI不存在,则要求服务器根据请求创建资源,如果存在,服务器就接受请求内容,并修改URI资源的原始版本。如果新的资源被创建,这个原始服务器就必须通过201(Created)响应通知用户代理。如果已有资源被修改,则发送200或者204响应,表示成功完成了该请求。

   PutBookItemPostBookItem 类似,但是使用的是 HTTP PUT。 响应是 204(无内容)。 根据 HTTP 规范,PUT 请求需要客户端发送整个更新的实体,而不仅仅是更改。如果在调用 PutBookItem时出错,请先调用 GET 方法以确保数据库中有指定的书籍信息。

在Visual Studio 2017中打开BookController.cs文件,添加以下 PutBookItem 方法:

// PUT: api/Book/5
[HttpPut("{id}")]
public async Task<IActionResult> PutBookItem(int id, Book item)
{
if (id != item.ID)
{
return BadRequest();
} _context.Entry(item).State = EntityState.Modified;
await _context.SaveChangesAsync();
return NoContent();
}

一)测试 PutBookItem方法

在进行 PUT 调用之前,在数据库中必须要有所要修改的书籍信息。请先调用 GET 方法以确认数据库中存在进行 PUT 调用的书籍信息数据。

1) 在Visual Studio 2017中按F5,启动BookApi应用程序。

2) 打开Firefox浏览器,并打开 Rester,在Reseter中,将 HTTP 方法设置为 PUT

3) 选择“Headers”选项卡,选择“Content-Type”选项,并将值设置为 JSON (application/json)。

4) 然后选择“BODY”选项卡,在请求正文中,输入书籍信息的 JSON,如下图:

JSON字符串:{

"id": 24,

"name": "Python编程实例",

"releaseDate": "2018-03-02",

"price": 59.49,

"author": "马瑟斯",

"publishing": "机械工业出版社",

"rowVersion": "AAAAAAAANrE="

}

5) 使用鼠标左键,单击“SEND”按钮。 响应返回204,这次修改成功。结果如下图。

6) 如下图,我们对ID=24的书籍信息进行了修改。我们来看一下更新前后的变化。

十六、添加删除方法

我们通过Http定义的DELETE方法删除一条书籍信息。DELETE请求就是执行相应的删除操作,配合数据库进行相应的删除动作。

  DeleteBookItem使用的是 HTTP DELETE。 响应是 204(无内容)。

在Visual Studio 2017中打开BookController.cs文件,添加以下 DeleteBookItem 方法:

// DELETE: api/Book/5
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteBookItem(int id)
{
var book = await _context.Book.FindAsync(id); if (book == null)
{
return NotFound();
}
_context.Book.Remove(book);
await _context.SaveChangesAsync();
return NoContent();
}

一)  测试 DeleteBookItem方法

在进行 DELETE 调用之前,在数据库中必须要有所要删除的书籍信息。请先调用 GET 方法以确认数据库中存在进行 DELETE 调用的书籍信息数据。

1) 在Visual Studio 2017中按F5,启动BookApi应用程序。

2) 打开Firefox浏览器,并打开 Rester,在Reseter中,将 HTTP 方法设置为 DELETE

3) 然后在URL输入框中输入要删除的对象URI,例如 http://localhost:5000/api/book/24

4) 使用鼠标,点击“Send”按钮。如下图。

5) 删除成功,如下图。

6)如果数据库中没有我们所要删除的数据,则会提示如下图。

7) 我们在浏览器中查询刚才的URI地址,如下图。数据已经不存在了。

使用 ASP.NET Core MVC 创建 Web API(五)的更多相关文章

  1. 使用 ASP.NET Core MVC 创建 Web API(二)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 六.添加数据库上下文 数据库上下文是使用Entity Framewor ...

  2. 使用 ASP.NET Core MVC 创建 Web API(三)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 十 ...

  3. 使用 ASP.NET Core MVC 创建 Web API(四)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  4. 使用 ASP.NET Core MVC 创建 Web API——响应数据的内容协商(七)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  5. 使用 ASP.NET Core MVC 创建 Web API(六)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  6. 使用 ASP.NET Core MVC 创建 Web API(一)

    从今天开始来学习如何在 ASP.NET Core 中构建 Web API 以及每项功能的最佳适用场景.关于此次示例的数据库创建请参考<学习ASP.NET Core Razor 编程系列一> ...

  7. 使用.Net Core MVC创建Web API

    创建.Net Core MVC 打开appsettings.json文件,添加数据库连接 { "Logging": { "LogLevel": { " ...

  8. 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】

    Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...

  9. 为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 webservice/API

    2018 .NET开发者调查报告: .NET Core 是怎么样的状态,这里我们看到了还有非常多的.net开发人员还在观望,本文给大家一个建议.这仅代表我的个人意见, 我有充分的理由推荐.net 程序 ...

随机推荐

  1. python笔记:#012#函数

    函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个 ...

  2. vim编辑器常见命令归纳大全

    Esc:命令行模式 i:插入命令 a:附加命令 o:打开命令 c:修改命令 r:取代命令 s:替换命令 以上进入文本输入模式   : 进入末行模式 末行模式: w:保存 q:退出,没保存则无法退出 w ...

  3. Python_字符串的大小写变换

    ''' lower().upper().capitalize().title().swapcase() 这几个方法分别用来将字符串转换为小写.大写字符串.将字符串首字母变为大写.将每个首字母变为大写以 ...

  4. 进阶-MongoDB 知识梳理

    MongoDB 一.MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mo ...

  5. SSIS 处理 bit 列

    一般的编程语言,例如,C#.Java和R等都有布尔类型,用于表示逻辑真(true)和假(false),SQL Server没有布尔类型,但是,在编程时,可以使用bit 类型来代替,bit类型只有两个有 ...

  6. CXF整合spring

    近公司需要弄webservics,还说不用框架整合(提倡使用hessian,他们既然说与操作系统有兼容问题,由于人员单薄,不得不屈服,哎),我想了老半天没弄明白他说的不用框架整合spring,尝试过直 ...

  7. javascript 判断对象类型

    typeof typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果. 此表总结了typeof所有可能的返回值: 操作数类型 返回值 undefined &qu ...

  8. CentOS安装JAVA

    http://hermosa-young.iteye.com/blog/1798026 每次都要搜索一下太麻烦了,留个底,方便以后查询 一般情况下,我们都要将linux自带的OPENJDK卸载掉,然后 ...

  9. Dubbo中编码和解码的解析

    (这里做的解析不是很详细,等到走完整个流程再来解析)Dubbo中编解码的工作由Codec2接口的实现来处理,回想一下第一次接触到Codec2相关的内容是在服务端暴露服务的时候,根据具体的协议去暴露服务 ...

  10. 一类SG函数递推性质的深入分析——2018ACM陕西邀请赛H题

    题目描述 定义一种有根二叉树\(T(n)\)如下: (1)\(T(1)\)是一条长度为\(p\)的链: (2)\(T(2)\)是一条长度为\(q\)的链: (3)\(T(i)\)是一棵二叉树,它的左子 ...