首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

了解asp.net核心端点路由的结构

ASP.NET Core是一种跨平台的开源框架,用于构建现代化的Web应用程序和服务。它使用了一种灵活的、可扩展的端点路由结构来处理HTTP请求。

ASP.NET Core的核心端点路由结构由以下几个组件组成:

  1. 端点(Endpoint):端点是处理HTTP请求的终点。它可以是一个HTTP方法(如GET、POST等)与一个URL模式的组合,也可以是一个不带URL模式的中间件。端点可以在应用程序中定义多个,每个端点负责处理特定的请求。
  2. 路由(Routing):路由是指将HTTP请求与特定的端点进行匹配的过程。在ASP.NET Core中,路由可以通过配置路由模板来定义,这些模板使用URL模式来指定请求的匹配规则。路由还可以根据请求的HTTP方法、主机、请求路径等进行更细粒度的匹配。
  3. 端点路由器(Endpoint Router):端点路由器是ASP.NET Core中的核心组件之一,它负责根据请求的URL和HTTP方法将请求分派给合适的端点。端点路由器使用预先配置的路由规则,将请求与已定义的端点进行匹配,并将请求转发到匹配的端点进行处理。
  4. 端点执行器(Endpoint Executor):端点执行器是负责执行匹配的端点的组件。它接收来自端点路由器的请求,并将请求传递给匹配的端点进行处理。端点执行器还负责执行中间件管道中的中间件,并将响应返回给客户端。

了解asp.net核心端点路由的结构有助于开发人员理解和使用ASP.NET Core框架,并可以更好地处理和路由HTTP请求。对于想要深入了解ASP.NET Core端点路由的开发人员,可以参考以下腾讯云产品和文档:

  • 腾讯云云服务器(CVM):腾讯云提供的高性能云服务器,可用于托管ASP.NET Core应用程序。详情请参考:腾讯云云服务器
  • 腾讯云CDN加速(CDN):腾讯云提供的全球分布式内容分发网络,可加速静态和动态内容的传输,提高应用程序的性能。详情请参考:腾讯云CDN加速
  • 腾讯云API网关(API Gateway):腾讯云提供的用于构建、发布、维护和安全管理API的全托管服务。详情请参考:腾讯云API网关
  • 腾讯云数据库MySQL版(TencentDB for MySQL):腾讯云提供的稳定可靠的云数据库服务,可用于存储和管理应用程序的数据。详情请参考:腾讯云数据库MySQL版
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core端点路由 作用原理

端点路由(Endpoint Routing)最早出现在ASP.NET Core2.2,在ASP.NET Core3.0提升为一等公民。 ?...Endpoint Routing动机 在端点路由出现之前,我们一般在请求处理管道末尾,定义MVC中间件解析路由。这种方式意味着在处理管道中,MVC中间件之前中间件将无法获得路由信息。...UseEndpoints 将端点执行添加到中间件管道。MapGet、MapPost等方法将 处理逻辑连接到路由系统;其他方法将 ASP.NET Core框架特性连接到路由系统。...结论 端点路由:允许ASP.NET Core应用程序在中间件管道早期确定要调度端点, 以便后续中间件可以使用该信息来提供当前管道配置无法提供功能。...这使ASP.NET Core框架更加灵活,强化端点概念,它使路由匹配、解析功能与端点调度功能脱钩。

1.1K10

ASP.NET Core端点路由中三种让人困惑路由函数

早先提及了端点路由app.UseEndpoints, 端点路由强调端点路由,其核心目的是将请求落地点与路由寻址方式解耦。...如今约定路由并不是主流,因为所谓约定路由对于用户浏览并不友好,而且暴露了后端开发者定义琐碎Controller、Action名称。...实际上,不应该让用户url去匹配开发者定义Controller-Action名称(太丑陋行为),而应该让开发者去匹配用户想要使用url, 这样特性路由出现了。 2....不对约定路由做任何假设,也就是不使用约定路由,依赖用户特性路由, 一般用在WebAPI项目中。 ---- 全文梳理就会发现: 官方英文描述屡次出现route,其实特指的是约定路由。...这样描述我其实是不苟同路由在.NET里面, 已经被普世认定为“约定路由”和“特性路由”,基于这种认知,我读了好几遍官方英文描述,其实没读出个所以然

41630
  • ASP.NET Core路由路由系统核心对象——Router

    ASP.NET Core应用中路由机制实现在RouterMiddleware中间件中,它目的在于通过路由解析为请求找到一个匹配处理器,同时将请求携带数据以路由参数形式解析出来供后续请求处理流程使用...二、RouteContext 接下来我们来了解一下整个路由解析涉及到了几个核心类型,首先来看看为整个路由解析提供执行上下文这个RouteContext类型。...如上图所示,一个RouteContext上下文包含三个核心对象,一个是代表当前请求上下文HttpContext对象,对应属性是HttpContext。...除了将一个自身具有字典结构对象作为原始数据源作为参数之外,我们还可以将一个普通对象作为参数,在此情况下这个构造函数会解析定义在对象自身类型所有属性定义,并将属性名称和值作为路由参数名称和值。...针对RouteData这个快照通过具有如下定义结构RouteDataSnapshot表示。

    1.3K10

    ASP.NET Core路由路由系统核心对象——Router

    ASP.NET Core应用中路由机制实现在RouterMiddleware中间件中,它目的在于通过路由解析为请求找到一个匹配处理器,同时将请求携带数据以路由参数形式解析出来供后续请求处理流程使用...二、RouteContext 接下来我们来了解一下整个路由解析涉及到了几个核心类型,首先来看看为整个路由解析提供执行上下文这个RouteContext类型。...如上图所示,一个RouteContext上下文包含三个核心对象,一个是代表当前请求上下文HttpContext对象,对应属性是HttpContext。...除了将一个自身具有字典结构对象作为原始数据源作为参数之外,我们还可以将一个普通对象作为参数,在此情况下这个构造函数会解析定义在对象自身类型所有属性定义,并将属性名称和值作为路由参数名称和值。...针对RouteData这个快照通过具有如下定义结构RouteDataSnapshot表示。

    1.9K40

    ASP.NET Core3.X 终端中间件转换为端点路由运行

    通过使用应用中路由信息,路由还能生成映射到终结点 URL。 在ASP.NET Core 2.1和更低版本中,路由是通过实现将IRouter传入URL映射到处理程序接口来处理。...但是从某种意义上说,整个Map分支对应于应用程序端点”. 在ASP.NET Core 2.2中,引入了终结点路由作为MVC控制器路由机制。...将中间件转换为端点路由ASP.NET Core 3.0中,我们使用端点路由,因此路由步骤与端点调用是分开。...一般而言,我们想路由中间件提前在管道中,以便后续中间件可以访问有关将执行端点信息。端点调用应在管道末端进行。...UseEndpoints()实际上为应用程序注册所有端点位置。 那么如何将我们自定义中间件使用端点路由来映射呢?

    1.1K10

    ASP.NET路由系统:路由映射

    路由注册核心就是在全局路由表中添加一个Route对象,该对象绝大部分属性都可以通过MapPageRoute方法相关参数来指定。接下来我们通过实现演示方式来说明路由注册一些细节问题。...三、对现有文件路由 在成功注册路由情况下,如果我们按照传统方式访问一个物理文件(比如.asxp、.css或者.js等),在请求地址满足某个路由URL模板模式情况下,ASP.NET是否还是正常实施路由呢...从界面上输出结果我们不难看出,虽然请求地址完全满足我们注册路由对象URL模板模式,但是ASP.NET并没有对请求地址实施路由。...四、注册路由忽略地址 如果将代表全局路由RouteTable静态属性RoutesRouteExistingFiles属性设置为True,意味着ASP.NET针对所有抵达请求都一视同仁,都按照注册路由表进行注册...路由系统:URL与物理文件分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

    2.3K90

    ASP.NET Core路由:内联路由约束检验

    当某个请求能够被成功路由前提是它满足某个Route对象设置路由规则,具体来说,当前请求URL不仅需要满足路由模板体现路径模式,请求还需要满足Route对象所有约束。...当我们在一个ASP.NET Core应用中使用路由功能时候,除了需要注册这个RouterMiddleware中间件之外,一般还需要调用ServiceCollection扩展方法AddRouting注册一些与路由相关服务...我们利用资源文件来作为文本资源存储,如下图所示,我们在一个ASP.NET Core应用中创建了两个资源文件Resources.resx(语言文化中性)和Resources.zh.resx(中文),并定义了一个名为...---- ASP.NET Core路由[1]:注册URL模式与HttpHandler映射关系 ASP.NET Core路由[2]:路由系统核心对象——Router ASP.NET Core路由...[3]:Router创建者——RouteBuilder ASP.NET Core路由[4]:来认识一下实现路由RouterMiddleware中间件 ASP.NET Core路由[5]:内联路由约束检验

    1.3K60

    Spring Cloud【Finchley】-15 查看Zuul路由端点和过滤器

    依赖会自动引入spring-boot-starter-actuator,所以无需重复引入 ?...---- application.yml配置启用所有的监控端点 增加如下配置 #actuator 启用所有的监控端点 “*”号代表启用所有的监控端点,可以单独启用,例如,health,info,metrics...如官方解读,使用GET方法访问该端点,可以查看zuul当前映射路由列表 使用POST方法访问该端点就会强制刷新zuul当前映射路由列表。 通过下面的注释也可以知道 ?...尽管路由会自动刷新,但是Spring Cloud依然提供了强制立即刷新功能。 访问zuul http://localhost:4534/actuator/routes ?...zuul默认情况下会代理所有注册在EurekaServer上服务 ---- 查看 Filters Endpoint ?

    61220

    .NET 6.0 中自定义接口路由

    前言 在本文中,我们将讨论ASP.NET Core中路由。我们将了解什么是接口(endpoints)路由,它是如何工作,它在哪里使用,以及如何创建自己路由。...或者你也可以直接叫EndPoint,但是先不管那么多,大概了解这个意思就可以了。 探索接口路由了解接口路由(End Point),您需要了解什么是端点以及什么是路由。...另一方面,执行端点被映射到一个特定路由ASP.NET Core开发人员已经熟悉这样一种路由模式: app.UseRouting(); app.UseAuthorization(); app.UseEndpoints...只有MVC和Web API端点使用更复杂模式。Razor页面的路由定义基于实际页面的文件夹和文件结构。 在ASP.NET Core 2.2中引入端点之前,路由只是运用在MVC和Web API中。...但是,端点路由是一种更灵活输出方式,它应该会在ASP.NET Core 3.0以后所有版本中进行使用。

    27520

    ASP.NET路由系统:根据路由规则生成URL

    前面我们已经提到过,ASP.NET 路由系统主要具有两个方面的应用,其一就是通过注册URL模板与物理文件路径匹配实现请求地址和物理地址分离;另一个则是通过注册路由规测生成一个相应URL。...,会遍历整个集合每个路由对象并调用其GetVirtualPath方法,如果返回VirtualPathData不会Null则直接将其作为返回值;否则(找不到匹配路由对象)返回Null。...如果在调用GetVirtualPath确定了具体使用路由对象,则直接调用该路由对象GetVirtualPath方法并返回其执行结果。...路由对象针对GetVirtualPath方法而进行路由匹配只要求URL模板中定义变量值都能被提供,而这些变量值具有三种来源,分别是路由对象定义默认变量值、指定RequestContextRouteData...ASP.NET路由系统:URL与物理文件分离 ASP.NET路由系统:路由映射 ASP.NET路由系统:根据路由规则生成URL

    1.3K80

    .NET 8 中调试增强功能

    这些包括: HttpContext 和其朋友 WebApplication MVC and Razor Pages gRPC 端点元数据 日志 配置 您不需要深入了解这些类型内部结构就可以找到有关应用程序信息...端点ASP.NET Core 核心概念。...端点代表可执行请求处理代码。当应用程序启动时,在应用程序中定义端点被注册为路由。然后,当 HTTP 请求进入应用程序时,路由将请求匹配到端点。...应用程序使用 ILogger 输出结构化日志。 ILogger 从来就不是为调试而设计。这是一个用于写入日志简单接口。在调试 ILogger 实例时,这种设计选择是显而易见。...它显示了为性能而设计难以理解数据结构。 在 .NET 8 中,可以更容易地了解是否启用了日志记录以及配置了哪些日志记录提供程序。

    19020

    基于ASP.NET Core 3.x端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离接口服务

    本文首发于 码友网 -- 《基于ASP.NET Core 3.x端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离接口服务》 前言 如题,今天为大家分享一种基于...ASP.NET Core 3.x端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离接口服务方案。...有了它,你可以按照不同业务来分开组织并管理服务接口端点,甚至可以为不同服务创建独立文件夹,就像ASP.NET Razor Pages项目结构类似,而不同把所有服务放到一个控制器中。...将获取到令牌填入授权窗口中,如下: ? ? 最后,再请求【获取指定ID学生信息】,得到正确接口返回内容,如下: ? 项目结构如下: ?...本文示例源码托管地址请至原文获取:《基于ASP.NET Core 3.x端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离接口服务》

    1.5K30

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

    ASP.NET Web API提供了一个独立于执行环境抽象化HTTP请求处理管道,而ASP.NET Web API自身路由系统也不依赖于ASP.NET路由系统,所以它可以采用不同寄宿方式运行于不同应用程序中...实现在HostedHttpRoute之中核心路由功能基本上是通过这个Route对象完成,所以我们才说Web Host下ASP.NET Web APIURL路由最终还是利用ASP.NET自身路由系统实现...ASP.NET Web API路由系统在Web Host情况下是如何利用ASP.NET自身路有系统实现URL路由ASP.NET Web API路由系统中HostedHttpRoute对象通过创建...Web API在Web Host模式下依然是借助ASP.NET自身路由系统实现URL路由,那么意味着当我们针对ASP.NET Web API进行路由映射时候必须在ASP.NET路由系统全局路由表中添加对一个继承自抽象类...通过前面针对ASP.NET路由实现原理介绍,我们知道整个路由系统核心是一个叫做UrlRoutingModuleHttpModule,它通过注册HttpApplicationPostResolveRequestCache

    1.6K100

    使用DOT语言和GraphvizOnline来可视化你ASP.NETCore3.0终结点01

    使用有向图来可视化ASP.NET Core终结点 ASP.NETCore中终结点路由系统通过创建端点URL段有向图来有效地工作。然后将传入请求与图进行匹配(一次一个段),以确定要执行终结点。...在上面的DOT文件中,节点被赋予顺序整数名,1, 2, 3等,并使用端点名称进行标记。这是ASP.NET Core用于表示终结点图格式。 对于Razor页面,路由非常简单,所以图非常明显。...至于HTTP: *端点呢,它们会产生响应吗? 为了进一步了解,我查阅了可以生成这些图ASP.NET Core中代码 ,但它有点复杂,不幸是,由于大量使用internal类。...我将在稍后文章中探讨这些代码。 为了更好地理解端点图,我们需要了解并非所有的节点都是相同。在下一节中,我们将深入研究这个简单图中不同类型节点,然后研究一个更好图形表示(至少在我看来!)...然后,我展示了如何将ASP.NETCore 3.x应用程序中端点路由表示为有向图。我描述了端点图中不同节点和边缘之间差异,并调整了图形显示以更好地表示这些差异。

    2.3K30

    ModelBinder——ASP.NET MVC Model绑定核心

    ModelBinder可以看成是整个Model绑定系统核心,我们先来认识这个重要组件。[本文已经同步到《How ASP.NET MVC Works?》...定义可以看出该特性不仅仅可以应用在参数上,也可以应用类型(接口、枚举、结构和类)上,这意味我们既可以将它应用在Action方法某个参数上,也可以将它应用在某个参数类型上。...在一个通过Visual StudioASP.NET MVC项目模板创建空Web应用中定义了如下几个类型,其中FooModelBinder和BarModelBinder是显现了IModelBinder...不过在ASP.NET MVC现有的应用编程接口中并没有定义任何一个实现该接口ModelBinderProvider类型。...围绕着ModelBinderModel绑定系统中核心组件之间关系基本上可以通过下图所示UML来表示。 ?

    2.4K100

    通过极简模拟框架让你了解ASP.NET Core MVC框架设计与实现:路由整合

    《200行代码,7个对象——让你了解ASP.NET Core框架本质》让很多读者对ASP.NET Core管道有了真实了解。...在对本章内容展开介绍之前,顺便作一下广告:《ASP.NET Core 3框架揭秘》已经开始销售,现时5折优惠还有最后4天,有兴趣从这里入群购买。...三、Action执行 执行Action方法 服务注册 四、在模拟框架构建一个MVC应用 整个MVC框架建立在路由中间件(《ASP.NET Core 3框架揭秘》下册具有对路由中间件专门介绍...IActionInvoker MVC框架需要解决核心问题就是根据请求选择并执行目标Action,所以用来执行ActionIActionInvoker对象无疑是整个MVC框架最为核心对象。...如下这个ConventionalRouteEntry结构表示单个约定路由注册项,其中包括路由名称、路由模式、Data Token和排列位置。

    1.2K30

    ASP.NET Core 基础知识】--Web API--创建和配置Web API(一)

    三、配置路由和控制器 3.1 理解路由基本概念 在Web API中,路由是决定如何将HTTP请求映射到控制器和操作方法过程。理解Web API路由基本概念对于构建和设计API端点是至关重要。...以下是一些关键概念: 路由模板(Route Template): 路由模板定义了API端点URI结构,它决定了请求应该如何被匹配到相应控制器和操作方法。...路由生成(Link Generation): 在构建URL时,路由生成允许你以类型安全方式引用API端点。...五、总结 在ASP.NET Core Web API创建和配置过程中,我们首先使用.NET CLI创建项目,并了解了项目结构。...了解Web API路由基本概念是关键,可以通过特性路由或全局路由配置来定义API端点。创建数据模型是构建API基础,可以通过数据注解或Fluent Validation来进行验证。

    83400

    深入探索路由算法核心原理与应用

    引言 网络路由不仅确保数据包从源头顺利到达目的地,还优化了数据传输路径,提高了网络效率和性能。路由算法,作为网络设计核心,决定了数据传输路线。...本文将深入探讨路由算法分类、工作原理及其在现代网络技术中应用。 一、路由算法分类 1.1 静态路由算法 1.1.1 原理 静态路由是网络管理员手动设置路由,它不会自动调整。...它适用于网络结构简单、不经常变化环境,如小型企业网络。然而,在大型或动态变化网络中,静态路由可能无法高效应对网络状态变化。...这个过程说明了距离矢量路由算法如何通过不断信息交换和更新,最终达到全网最优路由状态。 三、链路状态路由算法 3.1 原理 链路状态路由算法要求每个路由了解整个网络状态。...链路状态路由算法通过让每个路由了解整个网络状态,能够有效地计算出最短路径,这使得它特别适合于大型和复杂网络环境。

    4810
    领券