REST是一种设计原则,是一种表示软件解决方案的结构化方式 - 特别是将解决方案的各个方面暴露给客户端消费者。REST的核心原则是各个方法的返回可以建模为客户端可以使用或采取行动的资源。...RESTful方法使我们能够将我们的页面对象一致,并在阶级式的URL上有可预测的语义松散地映射到CRUD。...因此我们不需要维护一个经常被修改的面向用户的开发项目,并从中享受RESTful带来的好处 请考虑以餐馆中的订单场景进行建模,设计HTTP API -RPC API以“动词”的形式思考,将餐厅功能公开为接受参数的函数调用...重点 可以建模为客户端可以使用或采取行动的资源,不是客户端和服务器之间通信的实现细节 资源-----返回一个资源对象 正确返回 { "login":true } 错误返回 { true } 核心...:资源对象要被描述 使用或采取行动----同一个url的get,put,del,post请求返回的对象一致 不是客户端和服务器之间通信的实现细节---不需要RPC那样返回操作结果 3.RESTful
Web服务通常有远程过程调用(RPC)和RESTful (HTTP)两类,现在占据主导地位的Web服务是RESTful (HTTP),具体内容可以参看文章《REST在企业中获得成功了么?》...,贴一张文章里的图片: ? 2年前REST就已经成为Web API部署方式的主流了,而且一直保持这种发展势头,现在基本上都是REST服务,SOAP在企业内网还存在。...例如前面的代码段,如果要求从客户端来执行更高版本的 Web 服务的 DoSomething 方法的两个输入参数 — 或需要返回字符串值之外的另一个字段 —— 给老客户重大更改是不可避免的。...当然,您始终可以创建平行的 DoSomething_v2 方法,要带两个输入的参数,但久而久之会搞乱您的 Web 服务接口和消费者,服务变得越来越丑,用WCF实现的Web服务就是属于这种情况,下面我们介绍...、 基于公约 DTO 标准为其 Web 服务接口,ServiceStack 还提供预置的响应状态对象,可用于撰写 DTO,鼓励更加直接和简单的错误处理方案,显然和WCF是明显不同的路线。
这里我们将演示ExtJs的FormPanel从WCF加载数据,以及如何提交数据到WCF服务端 1.首先来定义一个用于传输信息的Class(实际开发中,可以是Linq to Sql的Class或任何可序列化的实体类...WCF用于Get方式取得ExtJs提交的数据(Json) /// /// ...id=xxx&text=xxx来访问(关于RESTFul WCF,可参见雨痕的文章http://www.rainsts.net/article.asp?...wcf的返回值,格式化为Json对象 form.getForm().setValues(data); //更新form...最近学习了ExtJs和WCF后,个人强力推荐.net3.x时代web开发的绝佳组合: ExtJs(前端) + WCF(web服务层) + Linq To Sql(DAL,以后可能会换成Ado.Net Entity
不废话了,直奔主题吧 wcf端: 近几年比较流行restful,为了能让ajax调用,同时也为了支持restful风格的uri,在创建一个Ajax-enabled Wcf Service后,必须手动修改...将无法用类似http://localhost/helloWorld.svc/Hello/person/name 的restful方式直接访问。...调用时有GET/POST二种方式,下面把几种常用的情况都写一个示例方法: using System.Collections.Generic; using System.ServiceModel; using...:" + data); } }); }) 有时候,WCF暴露的方法中可能需要一些敏感信息做为参数(比如用户名/用户ID之类),这时如果直接用...js来调用wcf,可能会把这部分信息泄漏在客户端,这种场景下,我们也经常用一个服务端的ashx来做中转 TestService.svc using System.ServiceModel; namespace
从 .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...让Web API的返回值变成IQueryable,Web API会自动启用OData query conventions。...ASP.NET Web API还有一个特性就是可以类似于WCF自宿主方式部署,当然也可以在IIS上运行。 下面来看看如何使用 ASP.NET Web Api (使用的是 VS2010版) ?
dudu的 HttpClient + ASP.NET Web API, WCF之外的另一个选择 讨论的人很多,说明RESTful API也开始在.NET 社区中得到重视,其中的回复有很多对REST不正确的观点...REST理论的中文详述,其中你可以了解到WCF Restful属于RPC 样式的 Web 服务,ASP.NET Web API属于RESTful Web 服务。...REST 谈论一件非常重要的事,如何正确地使用 Web标准,例如,HTTP 和 URI。想要了解 REST 最好的方式就是思索与了解 Web 及其工作方式。...如果你设计的应用程序能符合 REST 原则 (REST principles),这些符合 REST 原则的 REST 服务可称为 "RESTful web service" 也称 "RESTful Web...在 RESTful 每个资源有自己独立的 URI, Client 从资源集合或单个资源开始进入,不管是资源集合或单个资源,我们都能与 HTTP 方法配合使用,例如,GET 下载,PUT 更新,POST
经过WCF基础的ABC学习,已经可以构建简单的WCF的服务,使用不同的服务地址和绑定类型,根据业务提供所需的服务契约。但不禁想问,服务所使用的消息报文是什么样的形式么?蕴含什么样内容呢?...可以这么说,整个WCF服务都是构建在SOAP消息的基础上的,而SOAP消息是建立在XML这种跨平台的数据格式的基础上的,有人可能会说WCF也支持Restful风格的服务并支持json格式的数据,的确是这样...现在可以发现,基本上以json格式为基础的restful服务其实都转化为了WebAPI项目,而不是WCF。...,WCF支持集合数据和字典数据的数据契约 .此外,XML的文档结构描述方式,xsd文件和原来的DTD文件的相关知识也注意学习,可以参看http://utopialxw.iteye.com/blog/1218622...服务代理:作为服务在客户端的本地代理,本身不承担功能实现,仅仅是在服务与客户端之间起到一个中介的作用,是一种透明代理,可以通过RemotingServices.IsTransparentProxy方法来判断
这个规范改善了系统的可见性(无状态性使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当 前request,而不必了解所有的request历史),可靠性(无状态性减少了服务器从局部错误中恢复的任务量...),可伸缩性(无状态性使得服务器端可 以很容易的释放资源,因为服务器端不必在多个request中保存状态)。...7)Code-On-Demand,客户端可以访问服务器端的Resource,但并不知道如何处理服务器端返回的结果,这个处理过程的代码应该是从服务器端发送过来,然后在客户端执行,也就是说客户端的功能是根据需要动态从服务器端获得的...对于 GET 请求响应中返回的资源,可以用多种不同的方式进行缓存。...构建可靠的分布式系统时(即错误、网络故障或延迟可能导致多次执行代码),这一优点可提供保障。 5)互操作性许多人将 SOAP 捧为建立客户端-服务器程序最具互操作性的方法。
可靠消息的目标 确保从源到目标的消息传递。 当源或者目标有一端出现故障时,可以进行独立恢复。 对这两点做一个简单的说明: 对于协议的第一个目标。...比如消息传送过程中丢包了,可以通过一些方式(如服务端通知客户端重发),确保这个消息还能完整的传送到目标节点 对于协议的第二个目标。...比如客户端发送消息时,服务端正好不可用(比如重启),那么可以通过一些方式(比如缓存消息,至服务可用时再发送),确保服务端可用时能够收到消息 可靠消息的实现 可靠消息的在wcf的实现方式有两种:队列和可靠会话...利用通道工厂需要再创建一个BindingElement子类,重写BuildChannelFactory,返回自定义通道工厂 服务实现 服务示例同2019-1-27-wcf入门(6) - huangtengxiao...://xinyuehtx.github.io/post/wcf%E5%85%A5%E9%97%A8-14.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
Facebook、GitHub、Google 以及其他许多巨头都需要一种服务和消费数据的方式。在当今的开发环境中,RESTful API 仍然是服务和消费数据的最佳选择之一。...设计 RESTful API 的最佳实践是什么?从理论上讲,任何人都可以在不到五分钟的时间内快速启动数据 API——无论是 Node.js,Golang 还是 Python。...服务器不应跟踪可能影响将来请求结果的任何内部状态。 统一接口:最后,一致性定义了客户端和服务器之间的交互方式。...这种方法的最大优点是,每个开发人员都了解 RESTful API 的设计方式,他们可以立即使用 API,而不必阅读你的每个端点的文档。 3.使用复数资源 资源应始终使用其复数形式。为什么?...此外,还返回内部错误代码,供开发人员查找特定错误,这使开发人员可以快速查找有关该错误的更多信息。
REST并非是标准而是一种再互联网环境下开发提供服务的方法规范。REST 遵循 web 应用程序的体系结构风格,用户通过类似于选择翻页链接去往下一页的方式访问web应用程序。...无状态 每个发向服务器的请求都应该带有理解完成请求所需的全部信息 可缓存 返回的数据能够缓存以便于用户再其他时间调用,这能够提升性能并且减少网络通信。...HTTP Methods HTTP创造了一种与web上的资源进行通信的标准方式。获取、放置、删除、张贴是访问资源的一些常用方法。 GET 用特定的表示方式请求资源....设计RESTful服务 设计RESTful服务的第一步是确定需要公开的资源,然后是把这些资源映射到url。我们不应该局限在应用的方法设计上面,而是应该致力于设计资源的url。...因而需要料及其中的实现细节。从安全性的角度来说,RESTful服务依赖于HTT的安全性。
三、WebAPI初步—构建轻量级Restful服务的利器 3.1 Restful架构是什么? RESTful架构,就是目前最流行的一种互联网软件架构。...WCF也是微软以前很多服务产品的合体。 WCF 里面可以采用模板的方式来实现REST架构风格,但WCF毕竟是一个集大成的平台(或者说是:比较重量级)。...现在,我们来看一下我们写的这些方法: ①用于GET方式获取的方法有: GetAllProducts用于获取所有产品的集合;GetProductById用于返回指定Id的产品对象; GetProductByName...用户返回指定Name的产品对象;GetAllProductsByCategory则用户返回指定Category(种类)的产品集合; ②用于POST方式的方法有: PostProduct用于增加一个产品信息...; ③用于PUT方式的方法有: PutProduct用于修改一个指定的产品信息; ④用于DELETE方式的方法有: DeleteProduct用于删除一个选择的产品信息; 以上GET
由于其结构化数据的最佳表现,protocol buffers 是一个代表RESTful服务处理的数据很好的选择。...幸运的是,新版本的WCF HTTP堆栈,使媒体类型的WCF编程模型的一等公民,大家可以Glenn Block’s 博客去了解更详细的内容。...使用的媒体类型是application/x-protobuf ,REST服务的核心原则就是服务器和客户端之间的松耦合性,客户端需要知道书签的URI,但不应该知道任何其他的URI的知识,但是客户端必须知道链接关系...服务使用中ProtoBuf无疑是一个非常有效的超媒体类型。...Restful WCF / EF POCO / UnitOfWork / Repository / MEF : 1 of 2
这个逻辑名称将资源的标识与所接受或返回的标识分开。 RESTful URL必须具有创建、请求、更新或删除的功能。这个动作序列通常被称为CRUD。...SOAP绑定:它定义了一种使用底层传输协议来完成在节点间交换SOAP信封的约定。 SOAP消息基本上是从发送端到接收端的单向传输,它们常常结合起来执行类似于请求/应答的模式。...不需要吧SOAP消息绑定到特定的协议,SOAP可以运行在任何其他传输协议(HTTP、SMTP、FTP等)上。另外,SOAP提供了标准的RPC方法来调用Web Service以请求/响应模式运行。...区别: restful的优点:可以看作是http协议的一种直接应用,默认是基于json作为传输格式,使用简单返回格式一般为json_decode(code,msg, restful的缺点:安全性比较低,...我们来用WCF来发,用Fiddler来抓抓看,是什么样子。 但是我们如何来自动化操作这种请求呢? 祭出我们的大杀器,zeep. zeep是什么呢?就是python中用来解析SOAP格式的一个插件。
Java Web Service实现: 先来吐槽一下,其实如果使用Restful Json的方式与客户端交互,我们在线系统本身就支持,客户端也需要去处理soap版本的问题,实现起来更方便。...System.ServiceModel.ClientBase:提供用于创建可以调用服务的Windows通信基础(WCF)客户端对象的基本实现。...主要用于调用WCF创建的各种Binding类型的服务,当然也包括BasicHttpBinding也就是Soap 1.1。 接下来使用此代理类调用web服务。...可发现一个奇怪的问题,有个别的Web Service API行为很奇怪。这个API是返回一组数据列表,客户端调用正常,soap消息监控正常,服务器端执行正常, 可是返回到.net客户端的对象一直是空。...建议大家使用Restful /Json方式进行服务器和客户端数据交互,尤其是在跨语言的情况行下,更方便,更简单,也不需要关心soap版本之类的东东。 请关注公众号:程序你好
实际上在C#5引入基于任务的异步模型(TAP,async/await)之后,异步的wcf服务变得非常简单。 异步实现 首先在定义接口时,将返回值改为Task,表明这个方法可以异步 ?...那么这个时候就有疑问了,如果服务端在进入异步之前执行了许多同步代码,或者信道延迟,那么还是没有解决请求答复模式的超时问题呀。 那么我们就做个实验,看看客户端是什么时候返回的。...小结 我们研究了WCF服务的异步代码,其特点有 可以直接使用现有的TAP模式 发送完直接返回,不用担心信道,或者服务端实现 可以有返回值 参考链接: 2019-1-24-wcf入门(3) - huangtengxiao.../post/wcf%E5%85%A5%E9%97%A8-12.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。...欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
任何会话类型的数据应该在客户端保存和处理,只有在每次请求中按需传递到服务器。 Cacheable(可缓存) - 客户端应该能够缓存响应以供后续使用。 Q3. REST和 SOAP间的区别是什么?...因此将 [Queryable]特性添加到controller的方法中,它将会返回 IQueryable结果, 客户端可以使用该方法进行OData组合查询。 可以在IIS或应用程序中寄宿。...所以,如果你想以快速且简单的方式暴露你的服务端数据到浏览器端和现代设备app上,你应该有一个API,它负责兼容浏览器和所有设备。...如果我们需要web service但不需要 SOAP,那么ASP.NET WEB API将是最佳选择。 它在现有WCF消息管道之上,构建简单的,基于非SOAP的HTTP服务。...它不像WCF REST service那样需要配置乏味的配置文件。 使用WEB API创建服务十分简单。 基于HTTP并且容易定义,以REST方式公开和使用。
昨天写了《yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]》,引起了一些讨论。...我们在一个Console应用中编写了如下一段简单的程序:返回类型为IEnumerable的方法GetItems以yield return的方式返回一个包含三个字符串的集合,而在方法开始的时候我们打印一段文字表明定义在方法中的操作开始执行...我们大体可以以这样的方式来“解释”这个现象:一旦我们使用了yield return,返回元素的操作会被封装成“可执行的表达式”的方式返回,一旦我们对集合进行迭代的时候,这些表达式才会被执行。...对于上面这个例子来说,不管GetItems方法中以何种方式返回需要的对象,返回值总归是一个实现了IEnumerable 接口的某个类型的对象,我们只需要看看这个类型具有怎样的定义就知道C...的例子 再次回到《yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]》中提到的例子,现在来解释为什么针对如下两段代码,前者抛出的异常不能被WCF正常处理,而后者可以。
在今天的开发环境中,RESTful API仍然是服务和消费数据的最佳选择之一。 但你是否考虑过学习行业标准?设计一个RESTful API的最佳实践是什么?...下面这些是你的服务器可以返回的可能的速率限制头部: X-Rate-Limit-Limit:告诉客户端在指定的时间间隔内可以发送的请求数量。...此外,还返回了一个内部错误代码,以便开发人员查找具体的错误。这允许开发人员快速查找有关该错误的更多信息。 选择正确的API框架 许多框架存在于不同的编程语言中。...这仍然是传递关于你新开发的API知识的最简单的方法之一。 尽管你的API遵循了所有针对RESTful API的最佳实践,但仍然值得你花时间来记录各种元素。...头发送元数据 速率限制 有意义的错误处理 选择正确的API框架 输出文档 保持简洁 如果你喜欢这篇有关API最佳实践的文章,你可能也会喜欢学习从头开始建立一个RESTful API[8]。
自己在写Node服务时你遇到如何定义好接口的问题吗?下面介绍一种API架构风格,也是目前主流的API设计风格,你或许一直在使用。 ? RESTful API 示例 REST是什么?...RESTful API 设计最佳实践 请求设计规范 URI 使用名词,尽量用复数,如/users URI 使用嵌套标识关联关系,如 /users/12/repos/5 使用正确的HTTP方法,如GET/...只返回你指定的字段 状态码。选择正确的状态作为返回状态 错误处理。...如果你的请求是错的,那么应用尽量把错误信息给返回,并按照一个规范通用的格式 安全 HTTPS 鉴权 限流 开发者友好 文档 超媒体 RESTful API 示例 下面是我是真实API截图,用Swagger...,下载文件 POST 方式请求 api/file - 上传创建文件 DELETE 方式请求 api/file - 删除某个文件 常见笔试题:什么是 RESTful API,如何设计RESTful API
领取专属 10元无门槛券
手把手带您无忧上云