ASP.NET MVC WEBAPI第一次接触
asp.net 的MVC4 WEBAPI的出现已经有段时间了。最近因为做自己的一些小玩儿,要做一个API,正好可以学习一下这个WEBAPI。
WEBAPI项目的创建我就不啰嗦,先来看看webapi的路由配置吧
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
直接api跟控制器Controller的名字就可以了,这会让人疑惑这样的配置怎么才能访问到controller里的方法呢?我们都知道controller里的方法上可以加httpget或httppost这样的。所以我们得在方法上加上这些HttpMethod。
下面看看controller与url的映射关系
URL | controller的action | httpmethod |
/api/controllername/id | getuser(int id) | httpget |
/api/controllername/?name=xx | getuser(string name) | httpget |
/api/controllername/ | adduser(usermodel user) | httppost |
/api/controllername/id | deleteuser(int id) | httpdelete |
/api/controllername/ | deleteall() | httpdelete |
/api/controllername/ | putuser() | httpput |
注意:getuser(int id)这个方法的id不能改,改了之后就访问不到这个方法了。像这样的API配置是简单了,但是这要我们在controller里的每个方法加上httpmethod说明而且一个controller里的方法写不了多少个。不过不用担心,我们可以自己定义我们的路由配置,如下
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
这样配置我们就可以灵活的使用了。
以上是我个人学习的一些初浅的认识,欢迎大家指出我的不足。