REST基于唯一URI标识的资源。 只要服务遵从定义的标准或特性,我们可以将这个服务称为 rest。REST 并不与任何特定的平台联系在一起, 当前在Web上使用 HTTP 完成的。...一个RESTful定位web系统有下列特征: URI 统一资源标识符-这是互联网上资源的唯一标记。web上的每个资源都有这样一个唯一标识符-通用标识符 (例如, URL)。...WCF运行时的基础工作是监听处理来自网络位置的消息,并将他们传递给应用程序(服务),使用WCF开发REST应用程序是一项简单的任务。...在 IIS 上部署的服务的安全性 在IIS上承载终结点时, 使用web.config文件进行配置,可以对运行服务的虚拟目录进行配置。我们需要知道客户机配置和虚拟目录配置。...从安全性的角度来说,RESTful服务依赖于HTT的安全性。 适于使用的情况 当我们计划设计一个专门在web上使用的应用程序时, 或者当我们需要快速客户端集成时, 可以使用REST。
RESTFul:面向资源的架构(roa) RESTFul基于HTTP协议,是一种明确构建在客户端/服务端体系结构上的一种风格, rest是Representational State Transfer的缩写...RESTFul综述 (1)每一个URI代表一种资源; (2)客户端和服务器之间,传递这种资源的某种表现层; (3)客户端通过HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。...举例来说,我们采取了“支付网关”的服务,并将它附加到不同的系统。 (2) SOA服务是黑匣子。在SOA中,服务隐藏有内在的复杂性。他们只使用交互消息,服务接受和发送消息。...应用程序可以在中央存储库中搜索服务,并调用相应服务。 (5) SOA服务可以编排和链接实现一个特定功能: SOA服务可以使用了即插即用的方式。...例如,“业务流程”中有两个服务“安全服务”和“订单处理服务” 。从它的业务流程可以实现两种类型:一,您可以先检查用户,然后处理订单,或反之亦然。
首先,WCF Data Services是WCF服务,所以你可以使用所有现有的WCF知识。...其次,WCF Data Services已经实现了OData拓扑,于是你可以致力于你的数据格式在你的程序中的表示,而不是AtomPub/JSON这些真正在网络上传递的数据格式。...使用Visual Studio 2010里头使用WCF Data Service,就是使用OData发布的Restful服务,下面的例子演示2010里头的WCF Data Service. 1、创建一个数据库...一个workspace可能是一个博客,wiki命名空间或内容集等通过您用户名/密码可以访问的资源。...您也可以在HTTP的头部通过Range来指定一日期范围,这样可以限制返回的collection只包含那些在开始和结束日期之间的条目。
WCF服务是否支持会话?WCF所提供的服务是单例的呢还是单调的呢?服务寄宿和客户端代理是如何实现的呢?...可以这么说,整个WCF服务都是构建在SOAP消息的基础上的,而SOAP消息是建立在XML这种跨平台的数据格式的基础上的,有人可能会说WCF也支持Restful风格的服务并支持json格式的数据,的确是这样...现在可以发现,基本上以json格式为基础的restful服务其实都转化为了WebAPI项目,而不是WCF。...而会话模式,根据用户来创建服务示例,算是一种折衷。...在托管环境中,AppDomain提供了一种轻量级的隔离机制,不同AppDomain之间通过封送(Marshaling)来传递对象。
dudu的 HttpClient + ASP.NET Web API, WCF之外的另一个选择 讨论的人很多,说明RESTful API也开始在.NET 社区中得到重视,其中的回复有很多对REST不正确的观点...如果没有先了解 RESTful,那接下去的内容还真有点硬,像是专业名词,例如,你在 ASP.NET Web API 文件中可以看到大量的 Resource (资源) 这个单字,URI 我还能理解,跟 Resource...REST理论的中文详述,其中你可以了解到WCF Restful属于RPC 样式的 Web 服务,ASP.NET Web API属于RESTful Web 服务。...REST 谈论一件非常重要的事,如何正确地使用 Web标准,例如,HTTP 和 URI。想要了解 REST 最好的方式就是思索与了解 Web 及其工作方式。...网络上提供了各式各样的资源,而网络上的资源由 URI (统一资源标识符,Uniform Resource Identifier) 来提供。
从 .NET 3.5 开始 WCF 已经支持用 WebHttpBinding 构建 RESTful Web 服务,基于 WCF 框架的 RESTful Web 服务还是建立在 WCF Message 栈上...但 REST 集成在 WCF 消息管道上还是不理想,所以微软重新开始构造基于Http 协议特点的RESTful的Web API, 从2010年10月份开始把代码放在codeplex上http://wcf.codeplex.com...,非常期待正式发布的ASP.NET Web API,更期望ASP.NET MVC 4会和ASP.NET MVC 3一样可以很好的运行在Mono上,这样Mono平台就完美了,可以完全的支持RESTful...MVC的特性,例如他完全支持MVC风格的Routes和Filters,Filters在授权和异常处理方面是特别有用。...Web API支持Model Binding和验证(.NET4.5的WebForm也支持哦)。Web API框架内部自动支持XML和JSON格式,用户可以自行开发其他类型的超媒体类型。
由于其结构化数据的最佳表现,protocol buffers 是一个代表RESTful服务处理的数据很好的选择。...人们经常认为媒体类型只是在服务端使用,但是它用来在客户端控制序列化和反序列化的要求,下图显示了一个HTTP 请求/响应和媒体类型格式化扮演的角色: ?...使用的媒体类型是application/x-protobuf ,REST服务的核心原则就是服务器和客户端之间的松耦合性,客户端需要知道书签的URI,但不应该知道任何其他的URI的知识,但是客户端必须知道链接关系...相关文章: 软件系统开发中的数据交换协议 .net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比 Android上GTalk以及Push机制的XMPP数据选择使用protobuf格式而非...Restful WCF / EF POCO / UnitOfWork / Repository / MEF : 1 of 2
最为关键的是通过分离用户接口和数据存储这两个关注点,使得不同用户终端享受相同数据成为了可能。 2.无状态性:无状态性是在客户-服务器约束的基础上添加的又一层规范。...REST在原有的架构上增加了3个新规范:统一接口、分层系统和按需代码: 4.统一接口:REST架构风格的核心特征就是强调组件之间有一个统一的接口,这表现在REST世界里,网络上所有的事物都被抽象为资源,...Conditional GET 就是可供选择的一种实现细节,客户端可以向服务验证他的数据是否为最新版本;RESTful 端点可以通过它进一步提高速度和可伸缩性。...对我而言,使用 REST 的简易性涉及到代表资源的 URI 和统一接口。...WCF 4的REST创建可以下载模板 WCF REST Service Template 40(CS),具体参考 Getting started with RESTful web services in
区域实际上是应用程序内部的一个 MVC 结构,一个应用程序可能包含若干个 MVC 结构(区域)。例如:一个大型电子商务应用程序可能分为若干个区域,这些区域表示店面、产品检查、用户帐户管理和采购系统。...这里借用阮一峰博士的总结,到底什么是Restful架构: (1)每一个URI代表一种资源; (2)客户端和服务器之间,传递这种资源的某种表现层; (3)客户端通过四个HTTP动词,对服务器端资源进行操作...3.2 WCF and WebAPI 首先,ASP.NET Web API 和WCF有着千丝万缕的联系。 ...WCF也是微软以前很多服务产品的合体。 WCF 里面可以采用模板的方式来实现REST架构风格,但WCF毕竟是一个集大成的平台(或者说是:比较重量级)。...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。
RESTful Wcf是一种基于Http协议的服务架构风格, RESTful 的服务通常是架构层面上的考虑。...POST/DELETE)、UriTemplate 定义 REST 的服务的调用方式, 通过 WebMessageFormat (Xml/Json) 定义消息传递的格式。...RESTful的几点好处(引用博文): 1、简单的数据通讯方式,基于HTTP协议。避免了使用复杂的数据通讯方式。 2、避免了复杂的客户端代理。 3、直接通过URI资源定向即可把服务暴露给调用者。...2、 项目文件介绍 (1) IService1.cs 定义服务契约,在接口方法中定义RestFul请求规则。...VS自带的IIS调试,WCF RESTFul生成的URL与调用WCF服务的URL端口号要保持一致,要不然用ajax调用浏览器会认为跨域。
处理这些社会化的应用外,企业的组织也在暴露企业的应用功能。WCF Web API允许开发人员通过HTTP开放他们的应用程序、数据和服务。...他们还可以利用网络的高速缓存和代理的基础设施,通过提供适当的控制和实体头的方式,在下个版本的WCF(.NET 4.5)设计了RESTful风格的,并不强制开发人员使用Rest的应用程序,你的应用程序可以从...HTTP 通道堆栈 - WCF HTTP是不可知的托管环境,因为它可以在ASP.NET托管,直接在IIS或在桌面前端自托管,或像一个窗口服务后端进程。...调度 - 调度程序是为当前HTTP请求路由到HTTP服务实例和服务方法上的责任。服务和方法的基础上匹配的URI和HTTP方法(GET,POST,PUT,DELETE等)。...在WCF的Web API,已经推出了新的扩展点称为HTTP处理器,使开发人员可以轻松地插入自己的媒体类型的格式化(包括那些支持超媒体),它可以同时在身体以及其他组件的消息像的URI。
不废话了,直奔主题吧 wcf端: 近几年比较流行restful,为了能让ajax调用,同时也为了支持restful风格的uri,在创建一个Ajax-enabled Wcf Service后,必须手动修改...将无法用类似http://localhost/helloWorld.svc/Hello/person/name 的restful方式直接访问。...暴露的方法中可能需要一些敏感信息做为参数(比如用户名/用户ID之类),这时如果直接用js来调用wcf,可能会把这部分信息泄漏在客户端,这种场景下,我们也经常用一个服务端的ashx来做中转 TestService.svc...[ServiceContract] public class TestService { /// /// 获取当前用户指定月份的工资...context.Response.Write("{salary:" + salary + "}"); } /// /// 获取当前的用户
,这个类是在.Net 3.0中引入WCF框架的时候添加进来的。...System.ServiceModel.ClientBase:提供用于创建可以调用服务的Windows通信基础(WCF)客户端对象的基本实现。...主要用于调用WCF创建的各种Binding类型的服务,当然也包括BasicHttpBinding也就是Soap 1.1。 接下来使用此代理类调用web服务。...又发现一个坑,本来应该从.Net Client 传送到Web Service上的参数,服务器接收不到。 使用Soap工具跟踪,发现soap消息里根本就没有。...建议大家使用Restful /Json方式进行服务器和客户端数据交互,尤其是在跨语言的情况行下,更方便,更简单,也不需要关心soap版本之类的东东。 请关注公众号:程序你好
我们无需去实现复杂的客户端代理,无需使用复杂的数据通讯方式既可以将我们的服务暴露给任何需要的人,无论他使用 VB、Ruby、JavaScript,甚至是 HTML FORM,或者直接在浏览器地址栏输入。...WCF 3.5 引入了 WebGetAttribute、WebInvokeAttribute、UriTemplate 来增加对 REST 的支持,这使得我们用很简单的方式就可以实现 RESTful WCF...可参考以下几篇文章: 《深入浅出REST》 : 作者 Stefan Tilkov译者 苑永凯 《Web 编程模型》 : MSDN文档 《使用 WCF 和 .NET Framework 3.5 进行 HTTP...DoCallBack(delegate { ServiceHost host = new ServiceHost(typeof(Service),new Uri...= new WebChannelFactory(new Uri("http://localhost:8020/Web"))) {
WCF Web API支持多个宿主环境:自宿主(windows服务或者控制台)和IIS宿主(asp.net webform/mvc)。...宿主一个Web Api 如何通过浏览器或者Fiddler访问Web Api 如何在Api上启用OData uri查询 如何用WCF Web Test Client测试WCF Web API 1、创建一个基本的解决方案...通过一个HTTP Get 方法暴露contacts:首先创建一个poco(Plain Old C#)Contract类,代表我们在api上传递的联系人,本质上就是一个DTO(数据传输对象),在HTTP上我们把它作为资源...8、启用OData 查询支持 Web API支持OData协议,接受OData的URI格式查询,当OData 查询到达Web Api, 在返回客户端之前在服务端会进行必要的过滤和排序。...查询使用IQueryable 接口,服务端并没有去查询所有的数据,发送过滤和排序到服务端。
我们在讨论微服务场景下的 API 设计都是指 WEB API,一般的实现有 RESTful、RPC等。...然后定义了一个对象,这个对象可能直接使用了User这个类: { "username": "用户名", "password": "密码"} 这个对象在修改用户名的时候, password是不必要的,但是在修改密码的操作中...这样的好处是不会存在重复的 API,造成维护和理解上的复杂性。如何做到完全穷尽和彼此独立呢? 简单的方法是使用一个表格设计 API,标出每个 URI 具备的能力。 ?...如果存在 API 中可以通过用户组操作用户,通过用户的 URI 操作用户属于的用户组,这其中的问题是缺少了成员这一概念。用户组下面的本质上并不是用户,而是用户和用户组的关系,即成员。...规则是否统一 资源提供的能力是否彼此独立 URI 是否存在需要编码的字符 请求和返回的参数是否不多不少 资源的 ID 参数是否通过 PATH 参数传递 认证和授权信息是否暴露到 query 参数中 参数是否使用奇怪的缩写
配置服务概述 在设计和实现服务协定后,即可配置服务。在其中可以定义和自定义如何向客户端公开服务,包括指定可以找到服务的地址、服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型。 ...配置服务的类型 --使用配置文件配置 --在代码中强制配置 实际上,编写配置是WCF应用程序编程的主要部分。 ...--可使用.NET Framework配置技术对WCF服务进行配置。通常情况下,向承载WCF服务的Intrnet信息服务(IIS)网站的Web.config文件添加XML元素。...如果设置为空字符串,则指示在创建服务的ServiceHost时,终结点在指定的基址上可用。 ...--binding.通常,指定一个类似WsHttpBinding的系统提供的绑定,但也可以指定一个用户定义的绑定,指定的绑定确定传输协议类型、安全和使用的编码,以及是否支持或启用可靠会话、事务或流。
三、RESTful 中URI路径的定义风格 所有的 Web 服务都使用 URI ,只是使用的方式不同。...URI 是 Web 前端与后端进行数据交互的路径,是用户与 Web 服务器交互时传递信息的接口。 路径可以理解成网址,每个路径对应一个网址,每个网址对应一种资源,资源就是后台数据库中的数据对象。...在 RESTful 规范中,对应上面的请求方式,常见的返回状态码如下: 200 [GET]:服务器成功返回用户请求的数据 201 [POST/PUT/PATCH]:用户新建或修改数据成功 204...[DELETE]:用户删除数据成功 400 [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作 401 [*]:表示用户没有权限(令牌、用户名、密码错误...) 403 [*] 表示用户得到授权,但是访问是被禁止的 404 [*]:服务器无法找到被请求的页面 500 [*]:服务器发生错误,用户将无法判断发出的请求是否成功 在返回状态码中,不同请求方式成功后
中还有一席之地,但是在公共的Internet上,不是REST的服务实在不好意思和人打招呼,我们经常可以看到评价某某服务是RESTful的,但是从来没有听说某某服务是SOAPful的 :-) 微软对...REST的支持有点晚,自.NET3.5开始,WCF也可以提供RESTful接口。...当然,REST不光限于web service,网页服务也可以RESTful,微软的ASP.NET MVC框架提供了直接的REST支持。...REST常用的四种HTTP命令,GET、DELETE、PUT和POST,对于GET和DELETE,一个是获取资源,一个是删除资源,没什么异议,问题是PUT和POST,两者都有更改指定URI的语义,那么,...也许你会觉得这个两个方法的差别没什么大不了的,用错了也不会有什么问题,但是你的服务一放到internet上,如果不遵从HTTP协议的规范,就可能给自己带来麻烦。
WCF Data Service是OData协议,也是RESTFul Service的一种,上篇文章已经介绍了HTTP Basic Authentication for RESTFul Service,...也介绍了服务端如何设置。...Authentication – Part 6 – Custom Basic Authentication的介绍的方法调用: 1: Entities ctx = new Entities(new Uri...NetworkCredential("admin", "admin"); 3: var cache = new CredentialCache(); 4: var serviceUri = new Uri...此时需要进行强制验证通过,解决方法是在执行你的代码之前先回调一个名为ServicePointManager的类,每当http客户端的堆栈进行证书验证时,都会检查是否可以回调,如果可以,则执行你你的代码。
领取专属 10元无门槛券
手把手带您无忧上云