基于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包:

PM> Install-Package AttributeRouting.WebApi 

如果之前有安装过更高版本的包,需要先卸载。卸载命令为:PM> uninstall-package -f AttributeRouting.WebApi

然后开始程序:

首先创建一个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://www.cnblogs.com/tuyile006/p/6089513.html