-
使用 ASP.NET Core MVC 创建 Web API(五)
十五、添加更新方法
Http定义了与 服务器的交互方法,其中除了一般我们用的最多的GET,POST这两个方法之外, 其实还有PUT和DELETE。
PUT通常用于向服务器发送请求,如果URI不存在,则要求服务器根据请求创建资源,如果存在,服务器就接受请求内容,并修改URI资源的原始版本。如果新的资源被创建,这个原始服务器就必须通过201(Created)响应通知用户代理。如果已有资源被修改,则发送200或者204响应,表示成功完成了该请求。
PutBookItem
与 PostBookItem
类似,但是使用的是 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地址,如下图。数据已经不存在了。
出处:https://www.cnblogs.com/chillsrc/p/10768738.html