首页
学习
活动
专区
圈层
工具
发布

ASP.NET Web API路由系统:Web Host下的URL路由

ASP.NET Web API提供了一个独立于执行环境的抽象化的HTTP请求处理管道,而ASP.NET Web API自身的路由系统也不依赖于ASP.NET路由系统,所以它可以采用不同的寄宿方式运行于不同的应用程序中...如果采用Web Host的方式将定义Web API寄宿于一个Web应用之中,其实最终的URL路由还是通过ASP.NET本身的路由系统完成的,那么两个路由系统之间是如何衔接在一起的呢?。...Web API路由系统在Web Host情况下是如何利用ASP.NET自身的路有系统实现URL路由的:ASP.NET Web API路由系统中的HostedHttpRoute对象通过创建ASP.NET...Web API在Web Host模式下依然是借助ASP.NET自身的路由系统实现URL路由,那么意味着当我们针对ASP.NET Web API进行路由映射的时候必须在ASP.NET路由系统的全局路由表中添加对一个继承自抽象类...当我们将定义的Web API已Web Host模式部署在某个Web应用中并进行相应的路由影射,这些注册的HttpRoute(HostedHttpRoute)最终转换成ASP.NET全局路由表中的Route

2.1K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.NET Web API路由系统:路由系统的几个核心类型

    System.Web.dll程序集的依赖,实现在ASP.NET Web API框架中的URL路由系统亦是如此。...也就是说,ASP.NET Web API核心框架的URL路由系统与ASP.NET本身的路由系统是相对独立的。...当ASP.NET Web API框架实施约束检验的时候,已经通过URL模板匹配得到了所有的路由变量值,参数values表示的字典对象存放了这些路由变量,其Key和Value分别代表路由变量的名称和值。...七、注册路由映射 与ASP.NET路由系统下的路由映射类似,ASP.NET Web API下的路由映射就是为针对应用的路由表添加相应HttpRoute对象的过程。...我们对ASP.NET Web API的请求处理管道所做的所有配置基本上都是通过一个类型为HttpConfiguration的对象来完成,而路由注册自然也不例外。

    10.5K110

    Asp.Net Web API 2第八课——Web API 2中的属性路由

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html   路由就是Web API如何把...Web API支持一种新的路由类型,被叫做属性路由。顾名思义,属性路由是用属性来创建路由。在你的Web API中属性路由可以让你更好的控制URI。你能容易的创建描述资源阶层的URIs。   ...2、启用属性路由   3、添加路由属性   4、路由前缀   5、路由约束   6、可选的URI参数和默认值   7、路由名称   8、路由顺序 1、为什么使用属性路由   第一个Web API版本使用的是基于公约的路由...4、路由前缀 通常情况下,在同一个控制器中的所有路由以相同的前缀开头。...带有约束的路由参数。   不带有约束的路由参数。   带有约束的通配符路由参数。   不带有约束的通配符路由参数。

    1.4K40

    C# .NET面试系列六:ASP.NET MVC

    2、创建登录页面创建一个登录页面,通常位于 ~/Views/Account/Login.cshtml。该页面应包含用户输入用户名和密码的表单。登录按钮的点击事件通常由控制器的 Login 动作处理。...3、路由:Web API 使用路由来映射 HTTP 请求到相应的控制器和动作。路由规则定义了如何解析URL 中的信息以及如何匹配到相应的处理程序。...Web API是一种灵活而强大的工具,可用于构建面向Web的服务,为不同平台和设备提供数据和功能。在ASP.NET中,ASP.NET Web API是一个流行的Web API框架。17....确保按照项目的需求和架构选择合适的打包规则和配置。23. MVC 的路由选择是什么?MVC的路由选择是指在ASP.NET MVC中确定如何匹配传入的URL请求并将其路由到相应的控制器和动作方法的过程。...以下是ASP.NET MVC中路由选择的主要步骤:1、路由注册在应用程序启动时,通过调用 RouteTable.Routes.MapRoute 方法注册路由规则。

    40210

    利用 Panda.DynamicWebApi 快速构建动态 WebAPI —— 让你的应用逻辑“开口说话”

    在 DDD 架构和微服务盛行的当下,我们时常会希望应用逻辑层能够直接“开口说话”——也就是说,服务类无需额外编写 Controller,就能直接暴露为标准 RESTful 风格的 Web API。...动作命名和动词映射 根据方法名前缀,Panda.DynamicWebApi 会自动映射到合适的 HTTP 动词: 方法前缀 动词 Create/Add/Post POST Get/Find/Query...自定义路由 + 控制器识别规则 你可以通过实现 ISelectController 和 IActionRouteFactory 接口来自定义 API 注册逻辑: [AttributeUsage(AttributeTargets.Class...[Service] 特性,就能自动变成一个 API 控制器,路由格式如 /api/ServiceName/Method。...五、配置说明 通过 DynamicWebApiOptions 可设置: 属性名 默认值 说明 DefaultHttpVerb POST 默认 HTTP 动词 DefaultApiPrefix api 路由前缀

    29510

    如何在 ASP.NET MVC 中集成 AngularJS(1)

    作为一个微软stack开发者,我也是使用 ASP.NET MVC 平台实现 MVC 设计模式和并进行研究的粉丝,包括它的捆绑和压缩功能以及实现其对 RESTful 服务的 Web API 控制器。...除了使用 AngularJS 和 ASP.NET MVC,这个应用程序也将实现使用微软的 ASP.NET Web API 服务来创建 RESTful 服务。...- RequireJS 是一个 JavaScript 文件和模块加载 Ninject – 提供了支持 MVC 和 MVC Web API 支持的依赖注入 实体框架 - 微软推荐的数据访问技术的新应用...这种方法允许通过注册方法来实现控制器注册。...在下面的例子中,提供了一种用于注册和动态加载两个控制器和服务的注册方法。如果你愿意,也可以包括 Angular 全部库和指令的注册功能。

    10.9K60

    Asp.Net WebApi核心对象解析(一)

    我们在学习ASP.NET Web API时,需要对HTTP协议、web知识有一个比较深入的认识,这样在学习ASP.NET Web API时会比较快速的上手和应用。...在ASP.NET Web API中,一个控制器是处理HTTP请求的类。控制器的公共方法被称为动作方法或简单的动作。当Web API框架接收到一个请求,它请求路由到一个动作。...ASP.NET Web API的路由运行机制如下:       (1).找到控制器,网络API将“控制器”的值 {}控制变量。      ...ApiController是ValuesController类的父类,是整个ASP.NET Web API的核心类,继承该类可以用来创建ASP.NET Web API控制器。...下面介绍一下ApiController在ASP.NET Web API中所承担的任务如下:   (1).选择和运行控制器类上的一个操作方法。

    5.6K70

    Asp.Net Web API 2第五课——Web API路由

    如果你熟悉Asp.Net MVC,Web API的路由与Asp.Net MVC的路由是非常类似的。这主要的区别就是Web API使用的是HTTP方法,而不是URI路径来选择Action。...Routing Tables路由表   在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public 方法被叫做action方法或者简单的Aciton。...一旦一个匹配的路由被发现,Web API便会选择相应的Controller和Action。   ...注意,URI中的{id}片段如果出现,会被映射成Action的id参数。在这个例子中,这个控制器定义了两个GET方法,一个带有id参数的和一个不带有id参数的。...另外要注意,POST请求是失败的,因为该控制器未定义“Post…”方法。 Routing Variations路由变化  上一节描述了ASP.NET Web API基本的路由机制。

    1.8K50

    ASP.NET Web API编程——路由

    首先匹配api和root,然后匹配默认的控制器(controller),最后占位符id匹配操作(Action)接收的参数。...根据获得的控制器(Controller)名查找Web API中的控制器(controller)。如果没有查找到控制器(controller)名或者匹配到了多个,那么返回错误。...Web API框架认为控制器(controller)的操作(Action)具有如下特征: 1)公有类型的实例方法。...具体示例见“ASP.NET Web API编程——版本控制” public class CustomHttpControllerSelector : IHttpControllerSelector {...含有通配符和路由约束的顺序排第四。 含有通配符和无路由约束的顺序排第五。 3)在上述规则无法区分的情况下,即上述规则判定顺序相同的两个路由,决定顺序的依据是:不区分大小写地,比较字符串的序号。

    2.4K80

    Asp.Net Web API(三)

    Routing Tables路由表     在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public方法就被叫做action方法或简单的Action。...当Web API接收到一个请求的时候,它将这个请求路由到一个Action。         注意:Web API的路由与Asp.Net MVC的路由是非常相似的。...主要区别就是Web API使用的是HTTP方法,而不是URI路径来选择Action    为了确定哪个Action被调用,这个框架使用了一个注册表。...一旦一个匹配的路由被发现,Web API便会选择相应的Controller和Action。          ...这种风格的路由类似于Asp.Net MVC,而且可能与RPC式的API接近。   你也可以通过使用ActionName注解属性来覆盖动作名。

    2.4K50

    从 MVC 到使用 ASP.NET Core 6.0 的Minimal API

    年,随着 ASP.NET MVC 引入了其他语言中变得司空见惯的模型-视图-控制器模式[1],并为其提供原生支持,.NET Web 应用程序开发有了极速的发展。...2012 年,也许是由于 ReSTful API 的日益流行,借鉴了 ASP.NET MVC 的许多概念又引入了 ASP.NET Web API,这是对 WCF 的重大改进,使开发人员能够以更少的仪式构建...在 ASP.NET Core MVC 应用程序中,控制器负责接受输入、执行或编排操作并返回响应。它是一个功能齐全的框架,通过过滤器、内置模型绑定和验证、约定和基于声明的行为等提供可扩展的管道。...然后我们调用app.MapControllers()注册我们的控制器路由和 MVC 中间件。...该[Route("[controller]")]属性将使用/weatherforecast所有路由的前缀(或资源)(控制器类名减去“Controller”后缀),无参数[HttpGet]属性将在资源的根处注册操作

    9.2K10

    Go项目实战-API路由的分模块管理

    今天这个文章给大家介绍一下Web项目API路由的分模块管理,我们的项目使用的是Gin框架,但基本上所有的Web框架都能按照这个方式来分模块管理API接口的路由。...|---router.go # 负责路由初始化和注册各模块路由的总文件 | | |---user.go # 用户模块的路由文件 在路由目录中 router.go 负责路由初始化和注册各模块路由的总文件...api/router 目录下定义一个router.go文件,它负责路由初始化和注册各模块的路由。...gin.Group 来维护的,我们先在全局的router方法中通过 engine.Group("") 拿到一个不带任何路由前缀的 gin.Group 作为顶级路由组。...后面我们在项目开发时,API的路由管理也遵循这个原则: 每个业务模块的API,都编写单独的路由注册函数,把路由放在api/router/目录的一个单独的文件中,文件名与模块名相对应。

    35100

    Asp.Net Web API中使用Session,Cache和Application的几个方法

    在ASP.NET中,Web Api的控制器类派生于ApiController,该类与ASP.NET的Control类没有直接关系,因此不能像在Web MVC中直接使用HttpContext,Cache...不过,要在控制器类中通过HttpContext的Session属性直接使用Session状态数据,将抛出nullreference异常,网查主要有两种解决方案,一个是重载Global的init()方法,...在该方法中开放Session状态,另一个设计带Session的路由处理器     重载Global的Init() public class WebApiApplication : System.Web.HttpApplication...  建立HttpControllerHandler和HttpControllerRouteHandler并覆写 public class SessionStateRouteHandler : IRouteHandler...RouteParameter.Optional } ).RouteHandler = new SessionStateRouteHandler(); } }  在Global中注册配置

    1.8K10

    ASP.NET Core 设置 WebAPI 响应数据的格式—FormatFilter特性篇

    前言 在上一篇《ASP.NET Core 设置Web API 响应的数据格式——Produces 特性篇》老周已向各位介绍过 Produces 特性的使用,本文将介绍另一个特性类:FormatFilterAttribute...是怎么工作的 这个特性类可以应用在类(控制器)和方法(控制器中的 Action)上,它允许 API 的调用方主动选择返回数据的格式。这是什么操作呢?...中有个问号,表示这个路由参数是可选的,即可以省略。如果省略,ASP.NET Core 应用程序就会从已经注册的格式列表中查找匹配的第一个项作为默认格式。...在 Program.cs 文件中补上其他代码,在注册 API 控制器功能时,要调用 AddXmlSerializerFormatters 方法,这样才支持返回 XML 格式的数据。...由于默认的前缀 /swagger 被去掉了,所以,获取描述 API 的 JSON 文档的获取路径要手动设置回默认的路径 /swagger/v1/swagger.json,否则运行后会找不到 API 信息

    2.1K30

    Asp.net web api 知多少

    您可以在单个项目中混合使用WEB API和MVC控制器来处理高级AJAX请求并以JSON,XML或任何其他格式返回数据,并构建完整的HTTP服务。通常,这将是WEB API自承载。...当你混合使用了MVC和WEB API控制器,你想实现授权那么你必须创建两个过滤器一个为MVC和另一个为WEB API,因为两者是不同的。...ASP.NET WEB API 路由与 ASP.NET MVC 路由有什么区别? Ans. ASP.NET MVC 与 ASP.NET WEB API 使用路由来监控传入的请求。...Web Api 控制器中action 要么使用HTTP action 动词 (GET, POST, PUT, DELETE) 特性标记或者以HTTP动词作为action方法名命名前缀。...像ASP.NET MVC5那样,可以在WEB API2的controller级别和action级别定义特性路由: Controller level routing(控制器级别路由) 在控制器级别定义的特性路由将应用到所有

    6.7K50
    领券