WebApi 路由机制剖析:你准备好了.pdfVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WebApi 路由机制剖析:你准备好了

WebApi 路由机制剖析:你准备好了吗? 前言:从MVC到WebApi,路由机制一直是伴随着这些技术的一个 要组成部分。 它可以很简单:如果你仅仅只需要会用一些简单的路由,如/Home/Index ,那么你只需要配置 一个默认路由就能简单搞定; 它可以很神秘:你的url可以千变万化,看到一些看似“无厘头”的url,感觉很难理解它如何找 到匹配的action,例如/api/user/1/detail,这样一个url可以让你纠结半天。 它可以很晦涩:当面试官提问“请简单分析下MVC路由机制的原理”,你可能事先就准备好了 答案,然后噼里啪啦一顿 (型如 :UrlRoutingModule→Routes→RouteData→Re uestContext→Controller),你可能回答很流利 ,但并不一定能理解这些个对象到底是啥意思。两年前的面试,博主也这样做过。 博主觉得,究竟路由机制在你的印象中处于哪一面,完全取决于你的求知欲。路由机制博大 精深,博主并未完全理解,但博主是一个好奇心 的人,总觉得神秘的东西就得探索个究竟。 今天,博主根据自己的理解,分享下WebApi里面路由的原理以及使用,如有考虑不周,欢迎大家 指正。 一、MVC和WebApi路由机制比较 1、MVC里面的路由 在MVC里面,默认路由机制是通过url路径去匹配对应的action方法,比如/Home/GetUser这 个url,就表示匹配Home这个Controller下面的GetUser方法,这个很好理解,因为在MVC里面定 义了一个默认路由,在App_Start文件夹下面有一个RouteConfig.cs文件 url: “{controller}/{action}/{id}”这个定义了我们url的规则,{controller}/{action}定义了路由的必须 参数,{id}是可选参数 2、WebApi里面的路由 和MVC里面的路由有点不同,WebApi的默认路由是通过http的方法 (get/post/put/delete ) 去匹配对应的action,也就是说webapi的默认路由并不需要指定action的名称。还是来看看它的 默认路由配置,我们新建一个Webapi项目,在App_Start文件夹下面自动生成一 æ´å¤ç²¾å½©æ»ç¥è®¿é® 1 个WebApiConfig.cs文件: 和MVC类似,routeTemplate: “api/{controller}/{id}”这个定义了路由的模板,api/{controller}是 必选参数,{id}是可选参数,那么问题就来了,如果我们的url不包含action的名称,那么如何找到 请求的方法呢?我们先来简单看一个例子: 我们通过url来访问 说明请求能够成功。 为什么这个请求能够成功呢?那是因为,当我们访问http://localhost:21528/api/Order这个路 径的时候,webapi的路由引擎会自动去匹配”api/{controller}/{id}”这个模板,于是找到了控制器 是Order这个,那么问题来了?它是如何定位到GetAll()这个方法的呢?这里就是和MVC不同的 地方,前面说过,Webapi的路由规则是通过http方法去匹配对应的action,那么,我们通过浏览器 访问http://localhost:21528/api/Order这个路径的时候,浏览器默认通过url访问的都是get请求,于 是webapi的路由引擎就会去找Order这个控制器里面的get请求的方法,由于没有参数,所以自动 匹配到了无参数的get请求→GetAll()方法,所以请求成功! 当然,WebApi也支持MVC里面的路由机制,但RestFul风格的服务要求请求的url里面不能 包含action,所以,在WebApi里面是并不提倡使用MVC路由机制的。 这是一个最简单的例子,下面我们就来详细看看WebApi里面的路由原理以及使用。 二、WebApi路由基础 1、默认路由 上面我们提到了,新建一个WebApi服务的时候,会自动在WebApiConfig.cs文件里面生成一 个默认路由: æ´å¤ç²¾å½©æ»ç¥è®¿é®

文档评论(0)

rovend + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档