在第一部分,我们创建了一个基本的ASP.NET Web API项目,新建成功了数据表,然后添加了一些测试数据,最后创建了API控制器,用json格式把数据表里面的内容成功输出到浏览器上。接下来我们将继续完成对数据的添加、修改、删除操作。

添加操作

public HttpResponseMessage Post(Friend friend)
{
if (ModelState.IsValid)
{
db.Friends.Add(friend);
db.SaveChanges();
return Request.CreateResponse(HttpStatusCode.Created, friend);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}

首先对传入的数据进行验证,如果验证通过,则添加到数据库中,否则输出错误信息。

修改、删除操作

public HttpResponseMessage Put(Friend friend)
{
if (ModelState.IsValid)
{
db.Entry(friend).State = EntityState.Modified;
db.SaveChanges();
var response = Request.CreateResponse(HttpStatusCode.OK, friend);
return response;
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
} public HttpResponseMessage Delete(int id)
{
var friend = db.Friends.Find(id);
if (friend != null)
{
db.Friends.Remove(friend);
db.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK, friend);
}
return Request.CreateResponse(HttpStatusCode.NotFound);
}

和添加操作类似,用Linq语句操作Entity Framework,代码非常简洁高效。不同的方法名也对应了不同的操作,Get对应读取操作,Post对应添加操作,Put对应修改操作,Delete对应删除操作。

API接口测试

Advanced Rest Client是Chrome浏览器的一个插件,因此在浏览器上就可以直接调试各类API接口,比安装其他软件方便。只是这个插件要到Chrome应用商店去下载,因为被国内屏蔽的原因,需要翻墙后才能访问,下载地址是:https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

测试过程比较简单,注意要选择对应的方法Get、Post、Put或Delete。

下面这是调用删除数据的接口截图。

下面是对这次API接口程序每个方法和URL地址的对应表格。

控制器方法 URL地址 功能
Get /api/friend 读取全部数据
Post /api/friend (Friend model) 添加一条记录
Put /api/friend (Friend model) 修改一条记录
Delete /api/friend/id 删除一条记录

最新文章

  1. CanvasWebgl项目介绍
  2. 【XLL 框架库函数】 Excel/Excel12f
  3. JobTracker启动流程源码级分析
  4. Shell获取当前用户
  5. 【BZOJ】【2844】albus就是要第一个出场
  6. Django基本操作命令
  7. 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)
  8. centos打开3306端口
  9. [置顶] c#验证码识别、图片二值化、分割、分类、识别
  10. 启动Mysql报错:Another MySQL daemon already running with the same unix socket.
  11. JavaScript 毒瘤和糟粕(需要注意的地方)
  12. 去掉CI框架默认url中的index.php
  13. DevOps之主机
  14. Windows内核函数
  15. Gym 100952D&&2015 HIAST Collegiate Programming Contest D. Time to go back【杨辉三角预处理,组合数,dp】
  16. Win10系统下Anaconda下安装多种Python函数库
  17. 自定义类使用泛型and方法使用泛型
  18. AssemblyInfo.cs文件详解
  19. 使用import scope解决maven继承(单)问题<转>
  20. ECCV 2018 | UBC&腾讯AI Lab提出首个模块化GAN架构,搞定任意图像PS组合

热门文章

  1. useReducer代替Redux小案例-2(八)
  2. 【idea】断点调试时查看所有变量和静态变量
  3. C# Area 双重路由
  4. Docker Error response from daemon: driver failed programming external connectivity on endpoint webserver
  5. flutter Switch组件 On/off 用于切换一个单一状态
  6. shell编程系列26--大型脚本工具开发实战
  7. OpenBLAS编译 Release x64 Win10 vs2015
  8. Spring Cloud微服务安全实战- 2-1 环境安装
  9. 安卓 android studio 报错 WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and
  10. RabbitMQ 清除全部队列及消息