用ASP.NET Web API技术开发HTTP接口(二)
2024-08-27 00:58:41
在第一部分,我们创建了一个基本的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 | 删除一条记录 |
最新文章
- CanvasWebgl项目介绍
- 【XLL 框架库函数】 Excel/Excel12f
- JobTracker启动流程源码级分析
- Shell获取当前用户
- 【BZOJ】【2844】albus就是要第一个出场
- Django基本操作命令
- 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)
- centos打开3306端口
- [置顶] c#验证码识别、图片二值化、分割、分类、识别
- 启动Mysql报错:Another MySQL daemon already running with the same unix socket.
- JavaScript 毒瘤和糟粕(需要注意的地方)
- 去掉CI框架默认url中的index.php
- DevOps之主机
- Windows内核函数
- Gym 100952D&;&;2015 HIAST Collegiate Programming Contest D. Time to go back【杨辉三角预处理,组合数,dp】
- Win10系统下Anaconda下安装多种Python函数库
- 自定义类使用泛型and方法使用泛型
- AssemblyInfo.cs文件详解
- 使用import scope解决maven继承(单)问题<;转>;
- ECCV 2018 | UBC&;腾讯AI Lab提出首个模块化GAN架构,搞定任意图像PS组合
热门文章
- useReducer代替Redux小案例-2(八)
- 【idea】断点调试时查看所有变量和静态变量
- C# Area 双重路由
- Docker Error response from daemon: driver failed programming external connectivity on endpoint webserver
- flutter Switch组件 On/off 用于切换一个单一状态
- shell编程系列26--大型脚本工具开发实战
- OpenBLAS编译 Release x64 Win10 vs2015
- Spring Cloud微服务安全实战- 2-1 环境安装
- 安卓 android studio 报错 WARNING: Configuration &#39;compile&#39; is obsolete and has been replaced with &#39;implementation&#39; and
- RabbitMQ 清除全部队列及消息