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

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版本使用的是基于公约的路由...在大多数情况下,除非在你的管道中有自定义的模型绑定,这两种表现是等价的。 7、路由名称  在Web API中,每个路由都有一个名称。路由名称被用于生成链接,你能在HTTP响应中包含一个链接。...本文参考链接http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

1.2K40

Asp.Net Web API(三)

Routing Tables路由表     在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public方法就被叫做action方法或简单的Action。...当Web API接收到一个请求的时候,它将这个请求路由到一个Action。         注意:Web API的路由与Asp.Net MVC的路由是非常相似的。...这种风格的路由类似于Asp.Net MVC,而且可能与RPC式的API接近。   你也可以通过使用ActionName注解属性来覆盖动作名。...在Web API中,通常的约定是忽略{Action}的。 Defaults(默认值)   如果你提供默认值,那么这个路由匹配缺少这些片段的URI。...4.忽略用[NonAction]注解属性标注的Action。     第3步可能会rang人困扰。其基本思想是,可以从URI,或请求体,或一个自定义绑定来获取参数值。

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

    Asp.Net Web API 2第十五课——Model Validation(模型验证)

    ://www.asp.net/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api 当客户端发送数据给你的...Data Annotations——数据注解  在ASP.NET Web API中,你可以使用System.ComponentModel.DataAnnotations命名空间的注解属性来设置模型属性的验证规则...假设客户端发送了一个带有下列JSON表示的POST请求: { "Id":4, "Price":2.99, "Weight":5 } 你可以看出,客户端并未包含被标记成required的Name属性。...例如: {"Id":4, "Name":"Gizmo", "Color":"Blue"} 此处,JSON包含了Product模型中存在的属性(“Color”)。...HttpError类在RC版(指Web API的预览版)中无效。 你可以将此过滤器全局性地运用于所有Web API控制器。

    89920

    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...Web API第二课——CRUD操作http://www.cnblogs.com/aehyok/p/3434578.html       Asp.Net Web API第三课——.NET客户端调用Web...  本文描述ASP.NET Web API如何把一个HTTP请求路由到控制器的一个特定的Action上。...在Web API中,通常的约定是忽略“{action}”的。 Defaults(默认值) 如果你提供默认值,那么这个路由将匹配缺少这些片段的URI。...c:选择这样的一个action,在列表中的每个参数在URI中有一个匹配。   d:如果满足这些条件的动作不止一个,选用参数匹配最多的一个。 4.忽略用[NonAction]注解属性标注的动作。

    1.2K20

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

    Routing Tables路由表   在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public 方法被叫做action方法或者简单的Aciton。...更多信息参阅“自托管Web API"。(暂未实现)   路由表中的每一个条目都包含一个路由模板。这个Web API默认的路由模版是"api/{controller}/{id}"。...在这个模版中,“api”是一个文字式路径片段,而{controller}和{id}则是占位符变量。   当Web API框架接收一个HTTP请求时,它会试图根据路由表中的一个路由模板来匹配其URI。...例如,对于一个Get请求,Web API会查找一个以“Get…”开头的动作,如“GetContact”或“GetAllContacts”等。这种约定只应用于GET、POST、PUT和DELETE方法。...另外要注意,POST请求是失败的,因为该控制器未定义“Post…”方法。 Routing Variations路由变化  上一节描述了ASP.NET Web API基本的路由机制。

    1.5K50

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

    例如这两个查询: POST http://host/api/authors POST http://host/api/authors/{id} 2级, 动词: 正确使用了HTTP动词, 状态码也正确的使用了...Web API, 但并不是直接支持RESTful的 Web API....这个把Http请求绑定到参数的过程叫做实体绑定。 例如: ? 其中id参数是定义在路由里的,而name参数在路由里没有,但是仍然可以从查询参数中把name参数映射出来。...我们可以通过几种方式为其传递类型为Person的参数。 可以使用查询参数:/api/people?id=1&name=Dave 如果POST Json数据: ? ?...客户端浏览器可能在请求的Accept Headers里提供了多种的格式,但是ASP.NET Core MVC 默认是忽略浏览器的Accept Header的,并使用标准的输出格式。

    1.9K00

    请求走私利用扩展

    /web-security/request-smuggling/browser/cl-0/lab-cl-0-request-smuggling 靶场介绍:此靶场易受CL.0请求走私攻击且后端服务器在对某些端点的请求中会忽略...,则此端点不会受到攻击,如果对第二个请求的响应与我们期望的走私前缀相匹配,则表面后端服务器会忽略请求头中的"Content-Length" POST /resources/images/blog.svg...2: GET /capture-me HTTP/1.1 Host: YOUR-LAB-ID.h1-web-security-academy.net 回到浏览器刷新博客文章并在评论中可以看到已成功输出"GET.../capture"请求的开始 Step 5:随后打开一个单独的Chrome浏览器示例,转到漏洞利用服务器,打开浏览器开发人员工具,转到Console选项卡使用fetch()API复制上一节中的攻击,在这里我们有意触发...,随后将整个脚本包装在HTML的<script>标记中,存储该漏洞并单击"传递给受害者" 刷新博客文章并确认您已经捕捉到受害者用户请求的开始 重复此攻击调整嵌套的"POST/en/POST/comment

    43710

    快速入门系列--WebAPI--03框架你值得拥有

    所谓ASP.NET WebAPI,其核心概念就是构建REST风格的Web服务,把一起数据视为资源,无论是服务请求或者是数据操作,与以前的SOAP和XML-RPC架构风格有很大不同。...http://blog.darkthread.net/post-2014-06-07-go-to-angularjs.aspx 说到这,我还想到了学习中的一个困惑,那么多的IOC框架到底哪个相对更好一些...由于很多内容比较相似,将进行简单的介绍,不过框架中异步编程模型用的很多,值得学习参考。下图简单的表述了框架对请求的处理过程: ?     ...框架通过单例提供HttpControllerHandler对象,多个HttpWebRoute共享对象,并且它将创建右侧的ASP.NET Web API处理管道,通过调用BeginProcessRequest...: 类型 简介 HttpMessageHandler 核心类,针对请求的处理实现在SendAsync中,针对响应的处理通过返回类型Task完成 HttpRequestMessage

    2.3K90

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

    虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除了对...System.Web.dll程序集的依赖,实现在ASP.NET Web API框架中的URL路由系统亦是如此。...也就是说,ASP.NET Web API核心框架的URL路由系统与ASP.NET本身的路由系统是相对独立的。...另一个同样通过字典类型表示的只读属性DataTokens,我们应该不会感到陌生,至于通过制度属性Handler返回的HttpMessageHandler对象是组成ASP.NET Web API消息处理管道的核心...Web API管道的HttpConfiguration对象,这依赖于我们对Web API的寄宿方式,这并没有定义在ASP.NET Web API的核心框架之中。

    10K110

    ASP.NET Core 奇淫技巧之动态WebApi

    一.前言 接触到动态WebApi(Dynamic Web API)这个词的已有几年,是从ABP框架里面接触到的,当时便对ABP的这个技术很好奇,后面分析了一波,也尝试过从ABP剥离一个出来作为独立组件来使用...二.介绍 不管是传统的三层架构、 DDD 经典四层架构(DDD Lite),亦或是其他具有应用逻辑层(业务逻辑层)的架构,在Web应用程序开发当中 ,我们的业务逻辑最终都需要经过 Web Api 来进行调用...(4)会自动添加API路由前缀,默认会为所有API添加 api前缀 (5)默认的HTTP动词为POST,可以通过 HttpGet/HttpPost/HttpDelete等等ASP.NET Core 内置特性来覆盖...动词为 POST,对照表如下,若命中(忽略大小写)对照表那么该API的名称中的这个动词将会被省略,如 CreateApple 将会变成 Apple,如未在以下对照表中,将会使用默认动词 POST 方法名开头...2.配置 所有的配置均在对象 DynamicWebApiOptions 中,说明如下: 属性名 是否必须 说明 DefaultHttpVerb 否 默认值:POST。

    2.2K20

    REST 入门介绍

    dudu的 HttpClient + ASP.NET Web API, WCF之外的另一个选择 讨论的人很多,说明RESTful API也开始在.NET 社区中得到重视,其中的回复有很多对REST不正确的观点...或许大家手边的.NET系统整合都还是使用WCF(甚至Web Service)进行跨主机沟通,但是当微软在ASP.NET MVC 4 Beta里也开始推广REST架构的ASP.NET Web API。...如果没有先了解 RESTful,那接下去的内容还真有点硬,像是专业名词,例如,你在 ASP.NET Web API 文件中可以看到大量的 Resource (资源) 这个单字,URI 我还能理解,跟 Resource...我们发送信息给资源的行为在 HTTP 规范中称之为 POST。...在 Julie Lerman's 的 How I see Web API 一文中,用了一张图来简明说明 Web API: ? An Introduction to ASP.NET Web API

    1.3K80

    MybatisPlus不好用?帅小伙一气之下写了个MybatisPlusPro

    我们平时在用MybatisPlus作为开发的时候,虽然好用,但是大多数都在对 dao 层面的增删改查,所以打算自己抽取一套在 controller 层的功能出来。...方法的泛型表示,可以接受任意类型的参数entity。在此代码中,首先通过反射获取参数entity对象所对应类的属性,即value。...接着通过 Java 内置的 Introspector 机制获取id属性的 JavaBean 规范访问器PropertyDescriptor,并从该对象提取出对应的 getter 方法。...具体来说,该类中包含了五个基本 HTTP 操作(POST, GET),通过不同参数和请求方式对实体对象进行 CRUD 操作,即添加(insert)、删除(delete)、修改(update)、查询(getById...同时,通过Spring Boot自带的Web开发框架中的注解,将每个方法暴露为一个 Restful API。

    42820

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

    在 DDD 架构和微服务盛行的当下,我们时常会希望应用逻辑层能够直接“开口说话”——也就是说,服务类无需额外编写 Controller,就能直接暴露为标准 RESTful 风格的 Web API。...本文将带你了解如何使用 Panda.DynamicWebApi 快速构建 Web API,并介绍其核心配置与进阶用法。 一、Panda.DynamicWebApi 是什么?...Panda.DynamicWebApi 是一款受 ABP 框架启发的 .NET Core 扩展组件,可根据规则自动将你的服务类转化为 RESTful API,无需编写冗余的 Controller 代码。...五、配置说明 通过 DynamicWebApiOptions 可设置: 属性名 默认值 说明 DefaultHttpVerb POST 默认 HTTP 动词 DefaultApiPrefix api 路由前缀...六、总结 Panda.DynamicWebApi 极大简化了 API 的开发流程,特别适合中后台系统或微服务架构下的场景: • 快速暴露服务为 API • ⚙️ 支持自定义路由、动词映射 • 高度兼容

    8810

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

    2.ASP.NET Web API所需的软件包:       (1).System.Net.Http:提供核心HTTP编程模型。      ...在ASP.NET Web API中,一个控制器是处理HTTP请求的类。控制器的公共方法被称为动作方法或简单的动作。当Web API框架接收到一个请求,它请求路由到一个动作。...(3).在路由模板其他占位符变量,诸如{ID},被映射到动作的参数。    对于ASP.NET Web API的路由机制就讲解这么多,更多的内容大家可以自己去了解。...ApiController是ValuesController类的父类,是整个ASP.NET Web API的核心类,继承该类可以用来创建ASP.NET Web API控制器。...四.总结:    以上是对ASP.NET Web API背景和使用方法,以及对ASP.NET Web API核心对象的简要介绍,下篇会主要介绍HttpRequestMessage、HttpResponseMessage

    5.1K70
    领券