您的位置:首页 > 编程语言 > ASP

ASP.Net Web-api 不可多得的零基础教程4

2018-04-11 21:35 501 查看

本篇主要在WebApiConfig .cs上下下功夫。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}
以上程序是默认的路由配置,上一篇ASP.Net Web-api 不可多得的零基础教程3中已经介绍了,Route的相关知识,不明白的可以参考一下。

修改1:改变默认的路由配置:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "webapi/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}
主要的变化在这一句上:
routeTemplate: "webapi/{controller}/{id}"原来是:
routeTemplate: "api/{controller}/{id}"

变化的结果是,

原来的请求url是:http://localhost:12345/api/Demo/123
        现在变成了:http://localhost:12345/webapi/Demo/123

相信你自己已经看出来了,我就不多解释了。

修改2:修改路由结构,并添加约束:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{orgid}/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new { orgid = @"\d+" }
        );

    }
}
routeTemplate: "api/{orgid}/{controller}/{id}",
上面这一句是发生变化的路由:
变化后的url是:

http://localhost:12345/api/123/Demo/123

                              api/{orgid}/{controller}/{id}上面我故意对齐了路由模板和url的格式,想必大家能对号入座。(注意:这样的话,原来的url就失效啦!)
再来看看多出来的一句话:
constraints: new { orgid = @"\d+" }constraints是约束的意思,new { }是固定的格式,origid看着熟悉?这就是上面routeTemplate中的那个路径,origid=@"\d+"
这里用到了C#的正则表达式,@“\d+”代表至少由一个数字组成,也就是可以是任意的数字,字母肯定是不行的,约束谁呢?约束url

http://localhost:12345/api/abc/Demo/123    这是错误的

http://localhost:12345/api/1/Demo/123        这是合法的

http://localhost:12345/api/111/Demo/123    这也是合法的

本文结束,请关注后续文章!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: