ASP.NET MVC4 WEB API简单应用
2015-10-19 18:15
513 查看
ASP.NET Web API是在ASP.NET MVC4.0发布的,可以提供给浏览器,移动设备,WINDOWS服务等访问的Http服务。可以提供数据CRUD(Create,Retrive,Read,Update)操作,相对于WebService、WCF较简单轻量。Web
API侧重于数据(资源)操作,WebService和WCF侧重于业务逻辑(功能),如果涉及到复杂的业务操作,不推荐使用Web API。
这里给出一个基础的Web API应用程序,首先必须有ASP.NET MVC4。
创建MVC4应用程序,创建成功之后和普通的MVC框架无异
添加控制器-->空的API控制器,
创建之后发现和MVC控制器不同之处在与API继承自ApiController,而MVC控制器继承自Controller。
在Global里面多了一个WebApiConfig.Register(GlobalConfiguration.Configuration)的路由注册。
修改Web API路由,这里默认是没有“action”的,这种情况下API默认的操作只有List<T>GET(),T
GET(int id),PUT(T object),POST(),DELETE()操作。可以根据提交时的TYPE自动路由到对应的控制器,也就是说这几个Action都是死的。如果需要自定义Action名称,需要在这里加上“action”。
编写Controller,这里需要注意一点的是不标记特性(HttpGet,HttpPost),默认是HttpPost的
编译发布web api,这里我是发布到iis上
程序调用,这里返回xml或者json数据,可以反序列化成对象来使用
浏览器调用
API侧重于数据(资源)操作,WebService和WCF侧重于业务逻辑(功能),如果涉及到复杂的业务操作,不推荐使用Web API。
这里给出一个基础的Web API应用程序,首先必须有ASP.NET MVC4。
创建MVC4应用程序,创建成功之后和普通的MVC框架无异
添加控制器-->空的API控制器,
创建之后发现和MVC控制器不同之处在与API继承自ApiController,而MVC控制器继承自Controller。
在Global里面多了一个WebApiConfig.Register(GlobalConfiguration.Configuration)的路由注册。
修改Web API路由,这里默认是没有“action”的,这种情况下API默认的操作只有List<T>GET(),T
GET(int id),PUT(T object),POST(),DELETE()操作。可以根据提交时的TYPE自动路由到对应的控制器,也就是说这几个Action都是死的。如果需要自定义Action名称,需要在这里加上“action”。
编写Controller,这里需要注意一点的是不标记特性(HttpGet,HttpPost),默认是HttpPost的
public class WebApiController : ApiController { public IList<StudentVo> Get() { return ServiceFactory.StudentService.GetStudents(); } [HttpGet] public void Delete(int id) { ServiceFactory.StudentService.DeleteStudent(id); } public int Add() { return ServiceFactory.StudentService.SetStudent( new StudentVo { Address = "杭州", Id = 0, IsChinese = true, Name = "wangqi", Number = "30801234", Phone = "1508861xxxx", Sex = 1 }); } public int Modify(int id) { return ServiceFactory.StudentService.SetStudent( new StudentVo { Address = "杭州" + id, Id = id, IsChinese = true, Name = "wangqi", Number = "30801234", Phone = "1508861xxxx", Sex = 1 }); } }
编译发布web api,这里我是发布到iis上
程序调用,这里返回xml或者json数据,可以反序列化成对象来使用
static void Main(string[] args) { var request = (HttpWebRequest)WebRequest.Create("http://127.0.0.1:7066/api/WebAPi"); request.Method = "GET"; request.Timeout = 30000; using (var response = (HttpWebResponse)request.GetResponse()) { if (response.StatusCode == HttpStatusCode.OK) { var data = response.GetResponseStream(); } } }
浏览器调用
相关文章推荐
- ASP.NET文件操作
- Aspx页面模拟WebService功能
- CoordinatorLayout CollaspingToolBar
- ASP.NET MVC 在项目中使用面包屑导航
- asp文件用什么软件编辑
- asp.net OleDb导入Excel,并显示导入内容
- raspberry pi怎样输出I2S音频
- asp:HyperLink vs asp:LinkButton
- ASP.NET WEB服务控件
- asp文件如何打开
- asp.net的页面加载顺序
- ASP.NET动态网站制作(14)-- CSS3
- 区分ASP.NET中get方法和post方法
- iOS:Scale to Fill,Aspect Fit,Aspect Fill
- ASP.NET MVC 在项目中使用面包屑导航
- 基于ASP实现QQ在线查询功能
- Asp.net大文件下载的实现思路及源码
- asp.net 点击按钮,页面没有任何变化,后台代码不触发
- ASP.NET中调用ajax的方法
- Introduction of ASP.NET Webhooks