Fork me on GitHub

WCF Web Api

什么是WCF Web Api ?

越来越多的互联网应用向外开放他们的功能,例如Flickr,Twitter和Facebook,国内也掀起了开放的浪潮。处理这些社会化的应用外,企业的组织也在暴露企业的应用功能。WCF Web API允许开发人员通过HTTP开放他们的应用程序、数据和服务。这允许开发人员可以充分利用HTTP作为应用程序的协议,应用程序可以和丰富的客户端进行交互,不仅仅是浏览器、移动设备、桌面应用还是其他的后端服务。他们还可以利用网络的高速缓存和代理的基础设施,通过提供适当的控制和实体头的方式,在下个版本的WCF(.NET 4.5)设计了RESTful风格的,并不强制开发人员使用Rest的应用程序,你的应用程序可以从REST风格获得可发现、演化性和可扩展性。

高层次架构图

wcfapiarch

HTTP客户端 - WCF HTTP引入了一个用于发送HTTP请求和接收HTTP响应新的HTTP客户端。新客户端已建成非常紧密,与HTTP规范的规定,并允许开发者使用任何HTTP服务。 WCF的Web API也包含了简化的HTTP Body到.NET类转换的扩展方法。客户端还包括HttpRequestMessage和HttpResponseMessage是强类型的HTTP消息交涉。 WCF HTTP服务端也是用这写心得HTTP 消息。
监听器 - 这个组件通过HTTP侦听并接受传入的HTTP消息。监听器有一个像“http://www.contoso.com”,它的传入流量监控的具体的基址。
HTTP 通道堆栈 - WCF HTTP是不可知的托管环境,因为它可以在ASP.NET托管,直接在IIS或在桌面前端自托管,或像一个窗口服务后端进程。在托管之后,我们转变成我们新的HttpRequestMessage原始传入的HTTP消息,我们改造成一个原始HTTP响应传出HttpResponseMessage实例。如堵在OAuth的渠道处理的安全性,或所有消息的日志记录在通道层水平低问题可以得到解决。新HttpChannel API允许是一个简单易用的扩展点,允许开发人员轻松地插入这样的顾虑。
调度 - 调度程序是为当前HTTP请求路由到HTTP服务实例和服务方法上的责任。服务和方法的基础上匹配的URI和HTTP方法(GET,POST,PUT,DELETE等)。在这层序列化也是处理,允许HTTP消息或进行改造和其他组件的Body和.NET类型的互相转换。在WCF的Web API,已经推出了新的扩展点称为HTTP处理器,使开发人员可以轻松地插入自己的媒体类型的格式化(包括那些支持超媒体),它可以同时在身体以及其他组件的消息像的URI。处理器也可以用于解决其他交叉HTTP像ETag的关注。处理器还设计轻松测试。
HTTP服务 - 该服务的地方开发的一个自定义HTTP请求处理代码。在我们开发新的WCF HTTP版本可以直接访问底层的HTTP请求,并通过操作,而不是通过像WebOperationContext静态API的参数响应。新的请求和响应测试友好使服务更容易单元测试。
*对于那些熟悉WCF,这可能类似于您对我们以前的版本中看到图。主要区别在于,在各个层次的组成部分,现在具体到HTTP。

 

注:本文基本来自 http://wcf.codeplex.com/wikipage?title=WCF HTTP

Getting Started: Building a simple web api using HTTP GET

posted @ 2011-06-28 22:30  张善友  阅读(7309)  评论(1编辑  收藏  举报