基于Attribute的Web API路由设置

路由对于MVC应用程序来说都是至关重要的一个部门,不管是asp.net mvc或者Ruby on Rails(当然还有其它的,我只熟悉这两个:) )  asp.net mvc自带的路由配置是在Global.asax文件中,这里给大家介绍一个基于属性的路由配置工具:AttributeRouting,它不仅可以适用于ASP.NET MVC也适用于ASP.NET Web API项目。我们以ASP.NET Web API项目为例,说明下它的适用。

 

首先安装nuget包:

image

 

首先创建一个UrlController,添加如下的命名空间:

image

 

1.首先是基本的http请求方式路由定义:

上面的[GET("links")]

浏览器中访问结果如下:

image

 

使用attributerouting最大的好处是可以直接定义多个属性作为一个action的路由,如下图:

image

 

访问结果:

image

 

同时也可以使用[POST("postlinks")],这样就只能通过POST方式来请求Web API。

2.路由约束

有时候需要设置一些规则来约束某个路由是不可以访问的,这时候就需要用到路由约束,这里也可以使用AttributeRouting来设置路由约束:

image

输入的id必须是int并且在1~3之间,如果输入别的int值,会找不到路由:

 

image

 

当然也可以通过正则表达式来设定路由:

image

 

上面的正则表示e这个参数必须是大写字母+小写字母+数字组成。

image

 

还有更多的属性我就不一一介绍了,有兴趣的可以去下载代码和例子看看:

https://github.com/mccalltd/AttributeRouting

你可能感兴趣的:(attribute)