使用 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. Linux——浅析信号处理

    信号及其处理 信号处理是Unix和LInux系统为了响应某些状况而产生的事件,通常内核产生信号,进程收到信号后采取相应的动作. 例如当我们想强制结束一个程序的时候,我们通常会给它发送一个信号,然后该进 ...

  2. 程序员快递请查收,来自Python黑客大佬的一份DDOS攻击说明书!

    DDoS攻击没有我们想象中的那么简单,并不是什么Python程序员都能够做到的. 若要知晓黑客利用DDOS攻击原理那么我们必须要知道是实行DDoS攻击比较难的原因是什么? 很简单的一句话概括:&quo ...

  3. springmvc 请求经过controller后静态资源无法访问的问题

    经过RequestMapping(“xx”)后 转发请求时会在url里面附带地址, 导致访问静态资源文件失败, 解决办法是在 spring-mvc.xml文件中加上 <mvc:default-s ...

  4. CSS学习笔记三:自定义单选框,复选框,开关

    一点一点学习CCS,这次学习了如何自定义单选框,复选框以及开关. 一.单选框 1.先写好body里面的样式,先写几个框 <body> <div class="radio-1 ...

  5. shell脚本头,#!/bin/sh与#!/bin/bash的区别.

    因为今天写了个小脚本,死活不成功,总是报文件或者目录不存在,问了一下我们马同学的正常写法,发现只有脚本头的区别,也就是今天本文要讲的#!/bin/sh与#!/bin/bash. 本文参考:https: ...

  6. CSS的浮动和定位

    一.CSS中的浮动 1.定义和用法 float 属性定义元素在哪个方向浮动.在 CSS 中,任何元素都可以浮动.浮动会使原元素变成一个行级元素,而不论它本身是何种元素.如果浮动非替换元素,则要指定一个 ...

  7. DX11 Without DirectX SDK--03 渲染一个立方体

    回到 DirectX11--使用Windows SDK来进行开发 一个立方体有8个顶点,然而绘制一个立方体需要画12个三角形,如果按照前面的方法绘制的话,则需要提供36个顶点,而且这里面的顶点数据会重 ...

  8. Git的一些操作

    前言 记录一些经常需要用到的命令. 私钥.公钥的生成(默认在C盘用户文件下生成) ssh-keygen -t rsa //rsa加密 拉取远程分支并与本地分支合并 git pull [url] 上述效 ...

  9. Struts2中的值栈

    一 什么是值栈 值栈: struts2中提供的一种类似于域对象的工具, 用于struts2中的存值和取值. 每次访问Action的时候, 都会创建一个action对象, 而每个action对象中都存在 ...

  10. 许式伟:我与Go语言的这十年[转]

    2017-12-18 许式伟 Go中国 2007 年 9 月 20 日,关于设计一门全新语言的讨论正式开始,这门全新的语言,就是后来的 Go.时至今日,Go 语言已经发布到 1.9 版本,走过了整整十 ...