欢迎来到天天文库
浏览记录
ID:36319008
大小:1.41 MB
页数:20页
时间:2019-05-09
《wcf高级编程ch8restful风格wcf架构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、BF-TECH4.0DNET软件开发工程师高薪就业品牌课程版权所有:北风网使用WCF搭建企业通用架构讲师:石曼迪第八章:RestFul风格WCF架构目录RESTful的目标RESTFULAPI何为REST何为RESTREST+SOAP(85:15)REST何为RESTREST是设计基于命名资源—例如,以UniformResourceLocators(URL)、UniformResourceIdentifiers(URI)和UniformResourceNames(URN)的形式—而非消息的松耦合Web应用程序的一种风格。REST巧妙地借
2、助已经验证过的成功的Web基础设施—HTTP。换句话说,REST利用了HTTP协议的某些方面,例如GET和POST请求。这些请求可以很好地映射到标准业务应用程序需求,诸如创建、读取、更新和删除(CRUD)应用程序任务HTTP命令创建POST读取GET更新PUT删除DELETERestful和Http协议由于REST最终归结为命名资源,API就成为了一系列URI模式,并且与资源相关联的行为要通过标准HTTP命令调用。正如您可以看到的,客户的请求很好地映射到了CRUD。并且如您在表1中所了解到的一样,REST分别通过HTTP的POST、GE
3、T、PUT以及DELETE请求来支持CRUD。Restful背景WCF4.0其新功能之一就是WCF更容易以RESTAPI来呈现,在WCF3.5中的WebGetAttribute与WebInvokeAttribute中的UriTemplate参数原本不支持RESTURL格式,为了REST功能,微软还特意发布了WCFRESTStarterKit组件,让开发人员可以利用WCF3.5开发真正REST-based的应用程序,由URL对应到指定的ServiceContract中的OperationContract,在WCF4.0中,WCF的核心已经
4、融入了RESTStarterKit中的URL引擎,在WebGetAttribute与WebInvokeAttribute已经可以支持REST的功能,WindowsAzure许多服务的RESTAPI就是利用WCF来开发的。RESTFul的架构约束REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。特点:客户端-服务器无状态缓存统一接口分层系统按需代码Restful的五条关键原则为所有“事物”定义ID(URI)将所有事物链接在一起使用标准方法资源多重表述无状态通信为什么要基于API开发
5、为什么要基于API开发WEB是开放的时代,twitter的30W个客户端构造了操作壁垒,让google,facebook无法追赶;API让web,手机客户端,桌面多种操作成为可能,程序员分工更加明确,切降低了开发成本;软件开发依赖解耦让编程语言发挥各自的优势。客户端实现GET:Tasks/{id}查询POST:Tasks/Add提交PUT:Tasks/{id}更新DELETE:Tasks/{id}删除varclient=newHttpClient();varresponse=client.Delete(strUrl);varrespon
6、se=client.Get(strUrl);varresponse=client.Post(strUrl,GetContent(task));varresponse=client.Put(strUrl,GetContent(task));服务端设置指定传输类型,参数模板和操作[WebInvoke(UriTemplate="Tasks/{id}",RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,Method="DELETE")]现场编程自定义
7、WCF的Rest风格安全验证和现在WindowsAuzerAccessControl的原型一样。只不过这个Authoriztion的服务是专门的Services罢了。基本步骤如下:1.客户端先从发布令牌的服务获取令牌;2.客户端拿着令牌提交到现在的服务;3.服务端将客户端令牌拿到发布令牌的服务上校验。异步调用异步调用原理client.GetAsync();response.Content.ReadAsAsync().ResultMicrosoft.Http.dll和Microsoft.Http.Extensions.dll,它们是
8、微软提供的REST客户端包。可以更加方便地操作HttpRequest/Response,你可以在这里下到:http://aspnet.codeplex.com/releases/view/24644使用Re
此文档下载收益归作者所有