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

【ASP.NET Core 基础知识】--路由和请求处理--路由概念(一)

一、ASP.NET Core路由基础 1.1 路由的定义和作用 路由的定义: 路由是Web应用中的一个关键概念,它负责将用户发起的HTTP请求映射到相应的处理程序,通常是控制器中的动作方法。...通过定义RESTful路由,可以使Web应用程序的设计更加符合REST原则。 参数传递: 路由允许从URL中提取参数,这些参数可以用于定制请求的处理方式。这包括查询字符串参数、路由值参数等。...路由表中包含了每个路由的路由模板、相关的控制器和动作方法信息。当收到一个请求时,路由系统会查找路由表以确定如何映射该请求。...五、总结 今天我详细解释了ASP.NET Core中路由的基本概念,包括静态路由、参数化路由的基本参数、可选参数、默认值,以及控制器和动作方法的定义与调用。...此外,我介绍了控制器和动作方法的路由映射,包括控制器级别和动作方法级别的路由设置,以及常见的路由约束类型,如正则表达式、长度和范围约束。

1.7K10

用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 + 项目准备

Web API, 但并不是直接支持RESTful的 Web API....强类型的配置 ASP.NET Core允许把配置数据映射到一个对象类上面....当采用的是基于文件的配置时, 如果配置数据有变化了, 我们应该让配置模型重新加载, 这就需要把AddJsonFile里面的配置属性 ReloadOnChange 设置为 true: 这时, 无论在哪各地方使用了...默认情况下, ASP.NET Core 项目不提供状态码的细节信息, 但是通过启用StatusCodePagesMiddleware中间件, 我们可以启用状态码细节信息: 然后当我们访问一个不存在的路由时...到这里, 就会出现一个问题, Controller的Action方法(也就是Web API吧)应该直接返回Domain Model吗? 你也可能知道答案, 不应该这样做.

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

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

    2012 年,也许是由于 ReSTful API 的日益流行,借鉴了 ASP.NET MVC 的许多概念又引入了 ASP.NET Web API,这是对 WCF 的重大改进,使开发人员能够以更少的仪式构建...; 所述pattern指定路线的不同区段,并且允许指定的默认值。参数可以利用 ASP.NET 的路由约束语法[3]来限制接受的值。 对于 API,建议使用基于属性的路由[4]。...page=2&pagesize=20将满足上述操作参数的请求。 上面的示例还通过将可选参数标记为可为空并可选地提供默认值来演示可选参数的使用。 这对于复杂类型的工作方式略有不同。...,对于单个字符或单词(例如A,PYTHON,BOY),当将它们用作变量名时,大致所有小写字母,全部大写字母和首字母大写字母。...如果您需要支持内容协商,您可能需要构建自己的IResult. 授权 我想介绍的最后一个功能是授权。身份验证和授权都作为中间件存在,可用于任何风格的 ASP.NET Core 应用程序。

    9.2K10

    《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(中)

    第 3 章 ASP.NET Core 核心特性 3.3 依赖注入 通常情况下,应用程序由多个组件构成,而组件与组件之间往往存在依赖关系 当我们需要获取数据时,通常的做法是实例化依赖的类,然后调用类里面的方法...,定义路由的方法有以下两种: 基于约定的路由 特性路由 基于约定的路由需要在 Startup 类中指明,具体来说,应该在配置 MVC 中间件时来设置路由约定 app.UseMvc(routes => {...,参数 id 后面有一个问号,说明这个参数时可选的,在 URL 中有无此项都可以,注意,一个 URL 模板中只能有一个可选参数,并且只能放在最后 app.UseMvc(routes => { routes.MapRoute...Result 当要创建过滤器时,应该实现 IXXXFilter 或 IAsyncXXXFilter,前者同步,后者异步,实现一个即可 在 startup 种注册过滤器会使它影响到应用中的每个 Action...,如果要仅为一个或少数几个 Action 添加过滤器,就得使用特性,ASP.NET Core 为每一种类型的过滤器都定义了相应的特性 如果以特性的方式使用包含依赖项的过滤器时,就会出错,因为在自定义特性的构造函数中定义的接口类型的参数并不是有效的特性参数

    1.6K10

    Asp.net MVC 之 Contorllers(二)

    注 最初开发 URL 路由模块的目的是作为一个 ASP.NET MVC 组件,现在已经是 ASP.NET 平台的一部分,只是 ASP.NET MVC 和 ASP.NET Web Forms 提供的 API...路由请求 向IIS发出请求的时候,究竟发生了什么呢? 下图给出了在 ASP.NET MVC 和 ASP.NET Web Forms 应用程序中涉及相关的各个步骤如何工作的总体图。 ?...最后,只有符合预定义的 URL 格式(也就是路由)的请求,才被允许享用 ASP.NET MVC 运行时的服务。所有这些请求都被路由到一个共同的序实例化控制器类的HTTP处理程,并调用其中定义的方法。...例如,将前面的代码添加到一个 ASP.NET MVC 应用程序的 Global.asax.cs 文件,然后运行,当访问default.aspx页面时,会出现一个 HTTP 404 错误。...星号( * ) 表示最后的参数应该匹配 UR L的其余部分。换句话说,任何跟随在 .axd 后面的字符串都是 PATHINFO 参数匹配的范围。这些参数被称为完全捕获参数。

    2.6K60

    或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

    一、前言   在目前的软件开发的潮流中,不管是前后端分离还是服务化改造,后端更多的是通过构建 API 接口服务从而为 web、app、desktop 等各种客户端提供业务支持,如何构建一个符合规范、容易理解的...在本篇文章中,我将列举一些我在使用 ASP.NET Core Web API 构建接口服务时使用到的一些小技巧,因才疏学浅,可能会存在不对的地方,欢迎指出。   ...ASP.NET Core Web API 中如何去使用,不会做过多的详细介绍。...app.UseCors(_defaultCorsPolicyName); } }   例如在下面的设置中,我只允许这一个地址可以访问我们的接口,如果需要指定多个的话,则可以通过英文的 , 进行分隔...因为我们在之前设置构建的 API 路由时包含了版本信息,所以在最终生成的 Swagger 文档中进行测试时,我们都需要在参数列表中添加 API 版本这个参数。

    1.8K40

    或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

    一、前言   在目前的软件开发的潮流中,不管是前后端分离还是服务化改造,后端更多的是通过构建 API 接口服务从而为 web、app、desktop 等各种客户端提供业务支持,如何构建一个符合规范、容易理解的...在本篇文章中,我将列举一些我在使用 ASP.NET Core Web API 构建接口服务时使用到的一些小技巧,因才疏学浅,可能会存在不对的地方,欢迎指出。   ...ASP.NET Core Web API 中如何去使用,不会做过多的详细介绍。...app.UseCors(_defaultCorsPolicyName); } }   例如在下面的设置中,我只允许这一个地址可以访问我们的接口,如果需要指定多个的话,则可以通过英文的 , 进行分隔...因为我们在之前设置构建的 API 路由时包含了版本信息,所以在最终生成的 Swagger 文档中进行测试时,我们都需要在参数列表中添加 API 版本这个参数。

    1.6K20

    Gin 框架介绍与快速入门

    Gin 框架介绍与快速入门 一、Gin框架介绍 Gin是一个轻量级的Go语言Web框架,它具有高性能和简洁的设计。由于其快速的路由匹配和处理性能,Gin成为Go语言中最受欢迎的Web框架之一。...路由和中间件 Gin提供了强大的路由功能,支持参数传递、路由分组等特性。同时,它支持中间件的使用,可以方便地在请求处理过程中执行一系列的操作,比如身份验证、日志记录等。 3....: import "github.com/gin-gonic/gin" (可选)导入net/http。...定义路由:当使用 GET 方法访问路径为 /hello 时,执行回调函数 server.GET("/hello", func(c *gin.Context) { // 3.....}): 定义了一个GET方法的路由,当访问路径是/hello时,执行后面的回调函数。这里的回调函数使用gin.Context对象处理HTTP请求和构造HTTP响应。

    1.2K10

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

    创建项目:最后,点击“创建”按钮,即可创建一个新的ASP.NET Core Web API项目[1][2][4]。...以下是一些关键的概念: 路由模板(Route Template): 路由模板定义了API端点的URI结构,它决定了请求应该如何被匹配到相应的控制器和操作方法。...路由生成(Link Generation): 在构建URL时,路由生成允许你以类型安全的方式引用API端点。...路由匹配优先级: 当有多个路由模板与请求匹配时,系统会选择最匹配的路由。匹配的优先级取决于模板中的占位符和约束。系统会尽量选择最具体的路由。...在ASP.NET Core Web API中,路由规则定义了如何映射HTTP请求的URI到相应的控制器和操作方法。

    3.1K01

    Go语言经典库使用分析(七)| 高性能可扩展 HTTP 路由 httprouter

    现在我们就知道如何使用自己定义的路由了,那就是给http.ListenAndServe的最后一个参数handler传一个自定义的路由,比如: type CustomMux struct { } func...httprouter 命名参数 现代的API,基本上都是Restful API,httprouter提供的命名参数的支持,可以很方便的帮助我们开发Restful API。...比如我们设计的API/user/flysnow,这这样一个URL,可以查看flysnow这个用户的信息,如果要查看其他用户的,比如zhangsan,我们只需要访问API/user/zhangsan即可。..../")) 只需要这一句核心代码即可,这个就是把当前目录托管在服务器上,以供访问,访问路径是/static。...httprouter 异常捕获 很少有路由支持这个功能的,httprouter允许使用者,设置PanicHandler用于处理HTTP请求中发生的panic。

    1.3K40

    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。如果无路由匹配,客户端会接收到一个404(未找到)错误。...Parameter Bindings     参数绑定是指Web API如何创建参数值。...因此,这个Action只能匹配在路由字典或查询字符串包含了id值的URI    可选参数是一个例外,因为它们是可选的。对于可选参数,如果绑定不能通过URI获取它的值,是没关系的。

    2.4K50

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

    前言 在上一篇《ASP.NET Core 设置Web API 响应的数据格式——Produces 特性篇》老周已向各位介绍过 Produces 特性的使用,本文将介绍另一个特性类:FormatFilterAttribute...如果你以前(我说的是以前,因为现在很多都只支持JSON格式)做过像微博开放平台的 API 调用,可能还记得在 URL 上通过参数来选择返回 XML 还是 JSON。...格式名称是如何让 ASP.NET Core 识别出要返回的 Content-Type 的呢?别急,往下看就知道了。 先说说 FormatFilter 特性是如何获取到 API 调用方指定的格式的。...中有个问号,表示这个路由参数是可选的,即可以省略。如果省略,ASP.NET Core 应用程序就会从已经注册的格式列表中查找匹配的第一个项作为默认格式。...前文老周卖了个关子:ASP.NET Core 程序是如何识别出格式对应的 MIME ?

    2.1K30

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

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html   路由就是Web API如何把...2、启用属性路由   3、添加路由属性   4、路由前缀   5、路由约束   6、可选的URI参数和默认值   7、路由名称   8、路由顺序 1、为什么使用属性路由   第一个Web API版本使用的是基于公约的路由...在该类型的路由中, 你可以定义一个或者多个被参数化字符串的模版。当这个框架接收到一个请求时,它匹配一个URI到路由模版。...如果一个路由参数是可选的,你必须为这个方法参数定义一个默认值。...下面的例子展示怎样设置路由名称,当生成一个链接也能用这个路由名称。

    1.4K40

    单个资源

    为了让ASP.NET Core Web API 支持HATEOAS, 得需要自己手动编写代码实现....最后返回一个包含value和links的匿名类。 测试: 正确的返回了结果。 下面测试一下各种参数: 结果应该是OK的,但是大小写貌似有一些问题,这个我直接在源码里面改吧。...整个这个media type就表示我所需要的资源表述是JSON格式的,而且还要带着相关链接。 所以当请求的media type是application/json的时候,只需要返回资源的JSON表述。...这里还有另外一个问题,超媒体允许程序控件、链接等在被需要的时候提供,针对某个动作的链接,API消费者并不知道应该在请求里放什么内容。...这些其实就是之前的问题,我如何让API的消费者知道资源的表述应该是什么样的;还有我如何保证随着API的进化,API的消费者也会跟着进化?

    80210

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

    我们在学习ASP.NET Web API时,需要对HTTP协议、web知识有一个比较深入的认识,这样在学习ASP.NET Web API时会比较快速的上手和应用。...二.WebApi路由机制的简要概述:     对于ASP.NET Web API路由的介绍会比较简单,因为对于熟悉asp.net mvc的人来说不是什么难事,而且本次博文的重点并不是在这里,所以在这里只会做一个简单的介绍...在ASP.NET Web API中,一个控制器是处理HTTP请求的类。控制器的公共方法被称为动作方法或简单的动作。当Web API框架接收到一个请求,它请求路由到一个动作。...: new { id = RouteParameter.Optional } );     我们在设置WebAPI路由时,已尽量注意与AspNet Mvc的路由发生冲突,这一点在ASP.NET Web...(3).在路由模板其他占位符变量,诸如{ID},被映射到动作的参数。    对于ASP.NET Web API的路由机制就讲解这么多,更多的内容大家可以自己去了解。

    5.6K70

    用ASP.NET Core 2.1 建立规范的 REST API -- HATEOAS

    为了让ASP.NET Core Web API 支持HATEOAS, 得需要自己手动编写代码实现....最后返回一个包含value和links的匿名类。 测试: ? ? 正确的返回了结果。 下面测试一下各种参数: ? ? 结果应该是OK的,但是大小写貌似有一些问题,这个我直接在源码里面改吧。...整个这个media type就表示我所需要的资源表述是JSON格式的,而且还要带着相关链接。 所以当请求的media type是application/json的时候,只需要返回资源的JSON表述。...这里还有另外一个问题,超媒体允许程序控件、链接等在被需要的时候提供,针对某个动作的链接,API消费者并不知道应该在请求里放什么内容。...这些其实就是之前的问题,我如何让API的消费者知道资源的表述应该是什么样的;还有我如何保证随着API的进化,API的消费者也会跟着进化?

    1.2K40

    ASP.NET MVC5高级编程 ——(5)路由

    ASP.NET路由在两个地方设置: 1 :在应用程序Web.config文件中四个节点与路由有关: sytem.web.httpModules,system.web.httpHandlers节,system.webserver.modules...(); } 路由的核心工作是将一个请求映射到一个操作。...对于这种情况,当收到/person/bob这个URL的请求时,根据路由规则,会将bob作为id参数传入,但bob无法转换为int类型,所以方法不能执行。...如果我们想让Index成为默认的action,路由API允许为参数提供默认值,代码如下: [Route("home/{action=Index}")] {action=Index}这段代码为{action...此时,该默认情况就允许路由匹配没有action参数的请求。也就是现在既可以匹配具有一个段的URL,也可以匹配具有两个段的URL。

    2.8K40

    从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之二 || 后端项目搭建

    调用 GetById 时,它会将 URL 中“{id}”的值分配给方法的 id 参数。Name = "GetTodo" 创建一个命名的路由,使你能够 HTTP 响应中链接到此路由。...这是因为我只添加了MVC middleware, 但是它啥也没做, 也没有找到任何可用于处理请求的代码, 所以我们要添加Controller来返回数据/资源等等 四、核心知识点 1、Routing 路由...Action的路由地址就应该是: 'api/product/create'....CreatedAtRoute第二个参数就是对应着GetProduct的参数列表, 使用匿名类即可, 最后一个参数是我们刚刚创建的数据实体....model作为参数一起传到前台. ---- 五、结语 好啦,项目搭建就这么愉快的解决了,而且你也应该简单了解了.Net Core API是如何安装,创建,各个文件的意义以及如何运作,如何配置等,

    1.6K20

    Asp.Net Web API 2第六课——Web API路由和动作选择

    Asp.Net Web API 导航       Asp.Net Web API第一课——入门http://www.cnblogs.com/aehyok/p/3432158.html       Asp.Net...  本文描述ASP.NET Web API如何把一个HTTP请求路由到控制器的一个特定的Action上。...Route Templates  路由模版看上去类似于一个URI路径,但它可以具有占位符,并用花括号来指示: "api/{controller}/public/{category}/{id}" 当创建一个路由的时候...参数绑定是指Web API如何创建参数值。以下是参数绑定的默认规则:1.简单类型取自URI。2.复杂类型取自请求正文。...可选参数是一个例外,因为它们是可选的。对于可选参数,如果绑定不能通过URI获取它的值,是没关系的。 复杂类型是另一种原因的例外。一个复杂类型只能通过自定义绑定来绑定到URI。

    1.5K20
    领券