关于Web API的个人理解
2016-03-12 14:26
309 查看
Web Api的调用主要有四种, Get(获取)、Post(新增)、Delete(删除)、Put(更新)
路由定义常用的两种方式
方法1
方法2
以如下函数为例
1
2
3
方法1 函数1 : http://localhost:18264/api/Model/2
函数2 : http://localhost:18264/api/Model/
函数3 : http://localhost:18264/api/Model?asd=2&mmm=3(这里是有多个参数的情况)
方法2 函数1 : http://localhost:18264/api/Model/GetItem/2
函数2 : http://localhost:18264/api/Model/GetModels
函数3 : http://localhost:18264/api/Model/GetModels?asd=2&mmm=3(这里是有多个参数的情况)
个人补充
1.注意 id = RouteParameter.Optional 设置默认值的时候我们没有给ID设置因此 函数2才能找到无参数的GetModels方法 如果设置id默认值为2 那么http://localhost:18264/api/Model/ 就会定位到model2
2.Action代表着方法名,id代表着参数名,为什么会有方法2,在方法1没有不足以满足需求的时候可以考虑方法2,比如函数名不一样,但是参数一样 HTTP请求都是Get 需要采用方法2进行路由定义
3.注册过程
一 注册
二 建立Controller
public class ModelController:ApiController { }
三 建立参数仓库
public class FunctionRepository:IRepository<Function>
即可
路由定义常用的两种方式
方法1
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional });
方法2
config.Routes.MapHttpRoute( name: "DefaultApi2", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional });
以如下函数为例
1
public Model GetModel(int id) { var model = _modelRepository.GetItem(id); if (model == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return model; }
2
public IEnumerable<Model> GetModels() { var models= _modelRepository.GetAll().ToList(); var functions = _functionRepository.GetAll().ToList(); foreach (var model in models) { model.Functions = functions.Where(f => f.SubModelID == model.ModelID); } return models; }
3
public IEnumerable<Model> GetModels(int asd,int mmm) { return _modelRepository.GetAll().Where(c => c.ModelID == asd).ToList(); }
方法1 函数1 : http://localhost:18264/api/Model/2
函数2 : http://localhost:18264/api/Model/
函数3 : http://localhost:18264/api/Model?asd=2&mmm=3(这里是有多个参数的情况)
方法2 函数1 : http://localhost:18264/api/Model/GetItem/2
函数2 : http://localhost:18264/api/Model/GetModels
函数3 : http://localhost:18264/api/Model/GetModels?asd=2&mmm=3(这里是有多个参数的情况)
个人补充
1.注意 id = RouteParameter.Optional 设置默认值的时候我们没有给ID设置因此 函数2才能找到无参数的GetModels方法 如果设置id默认值为2 那么http://localhost:18264/api/Model/ 就会定位到model2
2.Action代表着方法名,id代表着参数名,为什么会有方法2,在方法1没有不足以满足需求的时候可以考虑方法2,比如函数名不一样,但是参数一样 HTTP请求都是Get 需要采用方法2进行路由定义
3.注册过程
一 注册
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional });
二 建立Controller
public class ModelController:ApiController { }
三 建立参数仓库
public class FunctionRepository:IRepository<Function>
即可
相关文章推荐
- python-Day7
- jquery.validate.unobtrusive的使用
- 堆栈之静态数组
- stl_set
- Missing iOS Distribution signing identity证书失效问题
- Swift 基础学习(内存管理)
- jquery中的几个问题总结
- 构建执法阅读笔记01
- 学习进度条——第二周
- 单调队列——滑动窗口
- Win32控制台程序中使用STL(string)
- C#扩展方法的理解 (转)
- 数据库使用情景分析
- Eclipse 下载 Git 仓库中代码(github上)
- 迅雷云监工(Crysadm)
- 附加理论材料课程笔记
- C++开源库
- Debian安装Arduino IDE
- sqlite常用的命令-增删改查 - sphone89的专栏 - 博客频道 - CSDN.NET
- 每日一支TED——帕特里夏·瑞安:不要固执于英语