ASP.NET Web API是如何根据请求选择Action的?[下篇] 再<上篇>中我们简单介绍了用于实现Action选择机制的HttpActionSelector,接下来我们来讨论本章最为核心的内容:ASP.NET Web API如何利用HttpActionSelector(以默认的使用的ApiControllerActionSelector为例)在目标HttpController成功激活之后如何从中选择出匹配的Action方法来处理当前的请求.[本文已经同步到<How ASP.NE…
ASP.NET Web API是如何根据请求选择Action的?[上篇] Web API的调用请求总是针对定义在某个HttpController中的某个Action方法,请求响应的内容来源于调用目标Action方法的执行结果.当ASP.NET Web API为当前请求成功激活目标HttpController之后,后续的操作就是为请求在该HttpController中选择出对应的Action方法.[本文已经同步到<How ASP.NET Web API Works?>] HttpActionSe…
http://www.cnblogs.com/leo_wl/p/3316548.html ASP.NET Web API是如何根据请求选择Action的?[上篇] Web API的调用请求总是针对定义在某个HttpController中的某个Action方法,请求响应的内容来源于调用目标Action方法的执行结果. 当ASP.NET Web API为当前请求成功激活目标HttpController之后,后续的操作就是为请求在该HttpController中选择出对应的Action方 法.[本文已…
再<上篇>中我们简单介绍了用于实现Action选择机制的HttpActionSelector,接下来我们来讨论本章最为核心的内 容:ASP.NET Web API如何利用HttpActionSelector(以默认的使用的ApiControllerActionSelector为例)在目标 HttpController成功激活之后如何从中选择出匹配的Action方法来处理当前的请求.[本文已经同步到<How ASP.NET Web API Works?>] 目录 候选的Action列…
构成ASP.NET Web API核心框架的消息处理管道既不关心请求消息来源于何处,也不需要考虑响应消息归于何方.当我们采用Web Host模式将一个ASP.NET应用作为目标Web API的宿主时,实际上是由ASP.NET管道解决了这两个问题.具体来说,ASP.NET自身的URL路由系统借助于HttpControllerHandler这个自定义的HttpHandler实现了ASP.NET管道和ASP.NET Web API管道之间的“连通”,但是在Self Host寄宿模式下,请求的监听.接收…
文章出处:http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html 在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API.作为ASP.NET MVC 4的一部分,ASP.NET Web API这套开源框架的设计目的是简化RESTful服务的开发和使用. ASP.NET Web API 与之前的内建HTTP服务解决方案的不同之处在于,它一开始就是围绕HT…
小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API.作为ASP.NET MVC 4的一部分,ASP.NET Web API这套开源框架的设计目的是简化RESTful…
http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html http://msdn.microsoft.com/en-us/library/jj823172.aspx http://stackoverflow.com/questions/9348639/wcf-vs-asp-net-web-api 在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API.作…
出处:http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html 在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API.作为ASP.NET MVC 4的一部分,ASP.NET Web API这套开源框架的设计目的是简化RESTful服务的开发和使用. ASP.NET Web API 与之前的内建HTTP服务解决方案的不同之处在于,它一开始就是围绕HTTP…
ASP.NET Web API 2.0新特性:Attribute Routing[上篇] 对于一个针对ASP.NET Web API的调用请求来说,请求的URL和对应的HTTP方法的组合最终决定了目标HttpController的类型和定义其中的目标Action方法.两者之间的映射是通过URL路由来完成的,ASP.NET Web API路由系统提供了一种便捷的方式使我们可以在统一的地方注册适用于所有HttpController的路由. 如果我们能够直接针对目标Action方法进行路由注册,那么我…
概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题,特别各种APP万花齐放的今天,API的跨域请求是不能避免的. 在默认情况下,为了防止CSRF跨站的伪造攻击(或者是 javascript的同源策略(Same-Origin Policy)),一个网页从另外一个域获取数据时就会收到限制.有一些方法可以突破这个限制,那就是大家熟知的JSONP, 当然这只是…
一.概述 RESTful Web API [Web标准篇]RESTful Web API [设计篇] 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用 二.路由 ASP.NET的路由系统:URL与物理文件的分离 ASP.NET的路由系统:路由映射 ASP.NET的路由系统:根据路由规则生成URL ASP.NET Web API路由系统的几个核心类型 Web Host下的URL路由 三.消息处理管道 ASP.NET Web API标准的“管道式”设计 如果调用…
通过<ASP.NET Web API的Controller是如何被创建的?>我们已经对HttpController激活系统的核心对象有了深刻的了解,这些对象包括用于解析程序集和有效HttpController类型的AssembliesResolver和HttpControllerTypeResolver.根据请求完整目标HttpController选择的HttpControllerSelector.负责激活目标HttpController实例的HttpControllerActivator.以…
最近在看老A的<ASP.NET 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 API http://www.cnblogs.com/aehyok/p/3439698.html Asp.Net…
一.ASP.NET 中的 Web API [水煮 ASP.NET Web API2 方法论](1-1)在MVC 应用程序中添加 ASP.NET Web API 与 ASP.NET MVC 在同一个进程中使用 ASP.NET WEB API [水煮 ASP.NET Web API2 方法论](1-2)在 WebForm 应用程序中添加 ASP.NET Web API 与 ASP.NET Web Form 在同一个进程中使用 ASP.NET WEB AP [水煮 ASP.NET Web API2 方…
随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑.注意,这里是两个Web网站项目了,前端项目主要负责界面的呈现和一些前端的相应业务逻辑处理,而Web Api则负责提供数据. 这样问题就来了,如果前端通过ajax访问Web Api项目话,就涉及到跨域了.我们知道,如果直接访问,正常情况下Web Api是不允许这样做的,这涉及到安全问题.所以,今天我们这篇文章的主…
一.HttpController激活流程 对于组成ASP.NET Web API核心框架的消息处理管道来说,处于末端的HttpMessageHandler是一个HttpRoutingDispatcher对象.当它完成路由解析工作之后(HttpRoutingDispatcher的路由解析只发生在Self Host寄宿模式下,对于Web Host寄宿模式来说,路由解析工作是由ASP.NET路由系统来完成的),在默认情况下它会将请求传递给一个HttpControllerDispatcher对象. Ht…
原文:[ASP.NET Web API教程]4.1 ASP.NET Web API中的路由 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 4.1 Routing in ASP.NET Web API 4.1 ASP.NET Web API中的路由 本文引自:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api…
HttpActionDescriptor,ASP.NET Web API又一个重要的描述对象 通过前面对“HttpController的激活”的介绍我们已经知道了ASP.NET Web API通过HttpControllerDescriptor来描述HttpController.对于定义在HttpController中的每一个Action方法则通过一个类型为HttpActionDescriptor的对象来描述,Action方法基本的元数据信息可以在对应的HttpActionDescriptor对…
在细说Asp.Net Web API消息处理管道这篇文章中,通过翻看源码和实例验证的方式,我们知道了Asp.Net Web API消息处理管道的组成类型以及Asp.Net Web API是如何创建消息处理管道的.本文在上篇的基础上进行一个补充,谈谈在WebHost寄宿方式和SelfHost寄宿方式下,请求是如何进入到Asp.Net Web API的消息处理管道的. WebHost寄宿方式: 在剖析Asp.Net WebAPI路由系统一文中,我们知道Asp.Net Web API在WebHost寄…
Routing Tables路由表 在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public方法就被叫做action方法或简单的Action.当Web API接收到一个请求的时候,它将这个请求路由到一个Action. 注意:Web API的路由与Asp.Net MVC的路由是非常相似的.主要区别就是Web API使用的是HTTP方法,而不是URI路径来选择Action 为了确定哪个Action被调用,这个框架使用了一个注册表.Visual Studio的W…
前言          在使用ASP.NET WEB API时,我想在某个方法返回JSON格式的数据,于是首先想到的就是手动构建JSON字符串,如:"{\"result\":\"true\"}" 虽然这种方式不可取但是基于测试的目的,如果真实项目用拼接JSON这是很容易出现问题,所以建议采用JSON.NET来构造JSON对象. 准备工作 因为ASP.NET WEB API 会根据你请求方式返回相应的数据格式,假设手动在浏览器中请求,在FF,Chr…
ylbtech-杂项:ASP.NET Web API ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务. ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台.可以在 www.asp.net/web-api 上找到 ASP.NET Web API 的教程和示例. 1. 文档资源返回顶部 1. ASP.NET Web API 文档资源 建议阅读下列文档以帮助了解 A…
本篇体验使用HttpClient对ASP.NET Web API服务实现增删改查. 创建ASP.NET Web API项目 新建项目,选择"ASP.NET MVC 4 Web应用程序". 选择"Web API". 在Models文件夹下创建Product类. public class Product { public int Id { get; set; } public string Name { get; set; } public string Categor…
本篇尝试在现有的ASP.NET MVC 4 项目上增加使用ASP.NET Web API. 新建项目,选择"ASP.NET MVC 4 Web应用程序". 选择"基本"项目模版. 在Controllers文件夹下添加一个名称为"TestController"的空API控制器. 在引用文件夹中多了以下程序集:System.Web.HttpSystem.Web.Http.WebHostSystem.Net.HttpSystem.Net.Http.Fo…
理想的RESTful Web API采用面向资源的架构,并使用请求的HTTP方法表示针对目标资源的操作类型.但是理想和现实是有距离的,虽然HTTP协议提供了一系列原生的HTTP方法,但是在具体的网络环境中,很多是不支持的.比如有的浏览器只能发送GET和POST请求,客户端发送的PUT请求也不一定能够被服务器理解.除了客户端和服务器对请求采用的HTTP方法的制约外,像代理(Proxy).网关(Gateway)等这些中间部件都具有针对HTTP方法的限制.[本文已经同步到<How ASP.NET We…
转载地址:http://www.cnblogs.com/fzrain/p/3558765.html 前言 一旦我们将API发布之后,消费者就会开始使用并和其他的一些数据混在一起.然而,当新的需求出现时变化是不可避免的,你也许会庆幸API变了对现有客户端没受到影响,但是这种情况不会一直发生. 因此,在具体实现之前仔细考虑一下ASP.NET Web Api的版本策略就变得很有必要了.在我们的案例中,需求发生了变化而且我们通过创建不同版本的API来解决变化,同时不影响已经在使用API的客户端.我们把新…
Web Host 模式下的路由本质上还是通过ASP.NET 路由系统来进行路由的,只是通过继承和组合的方式对ASP.NET路由系统的内部的类进行了一些封装,产生自己专用一套类结构,功能逻辑基本都是一样的. 简单的概括起来,Web Host模式下的ASP.NET Web API在Web应用中注册的路由(HostedHttpRoute)最终会转换成ASP.NET 全局路由表中的Route(HttpWebRoute),ASP.NET路由系统会对请求进行匹配,把匹配的路由变量数据存放到RequestCo…
本篇整理AngularJS使用OData请求ASP.NET Web API资源的思路. 首先给ASP.NET Web API插上OData的翅膀,通过NuGet安装OData. 然后,给controller中需要使用OData的Action加上EnableQuery特性,并让Action方法返回IQueryable<T>类型. public class ProductsController : ApiController { // GET: api/Products [EnableQuery(…