【发布时间】:2010-09-08 19:07:21
【问题描述】:
【问题讨论】:
标签: .net web-services rest
【问题讨论】:
标签: .net web-services rest
【讨论】:
我读过的最好的介绍是RESTful Web Services book,它不仅解释了模型和原理,还实际向您展示了如何设计一个 RESTful Web 服务。最有用的是它关于如何编写/指定 REST API 的清单:
【讨论】:
ADO.Net Data Servcies 使得在.Net 世界中构建和consume RESTful Web 服务变得非常容易,但是理解这些概念很重要。与 WCF(后来添加了 REST 支持)相比,ADO.Net 数据服务主要是为 REST 构建的。
Guidelines for Building RESTful Web Services 拥有您所需资源的所有信息。
这是另一个有用的blog entry:
统一接口约束描述了为 Web 构建的服务如何成为 Web 架构的良好参与者。这些约束简述如下:
1) 资源标识:资源是可以命名和表示的任何信息项(例如,文件、给定时间点的股票价格、拉斯维加斯当前的天气等)。您的服务中的资源应使用 URI 进行标识。
2) 通过表示操作资源:表示是资源的物理表示,应该对应于有效的媒体类型。使用标准媒体类型作为服务背后的数据格式,可以让广泛的潜在客户访问您的服务,从而扩大服务的覆盖范围。与资源的交互应基于对其 URI 标识的资源表示的检索和操作。
3) 自描述消息:遵循服务交互中的无状态原则,使用标准媒体类型并通过 HTTP 方法使用和控制标头正确指示消息的可缓存性,确保消息是自描述的。自描述消息使客户端和服务器之间的中介处理消息成为可能,而不会影响任何一方。
4) 超媒体作为应用程序状态的引擎:应用程序状态应该使用 URI 和超链接来表示,以便在状态之间转换。这可能是Roy Fielding's dissertation 中提出的架构约束中最具争议性和最不被理解的。事实上,Fielding 的论文包含一个明确的论点,反对使用 HTTP cookie 来表示应用程序状态来强调这一点,但它经常被忽略。
【讨论】:
xml.com“RESTful Web”系列的文章很棒 介绍。
作者(Joe Gregorio,The Atom Publishing Protocol 成名)也 定期在他的 weblog。 “RESTify DayTrader”(休息 应用于基准股票交易应用程序的架构)是一个很好的起点。我也喜欢“Why so many Python web frameworks?”,它展示了一个用 Python 实现的小型 restful web 框架。
【讨论】:
当我开始开发 REST Web 服务时,我阅读了 Mark Masse 的 REST API 设计规则手册。一旦您了解了基础知识和理论,您将能够使用 WCF、HTTPListener 或 ServiceStack 实现 REST。所有这些框架都是 .NET 并且有很好的文档记录......
我会向您推荐服务堆栈 (http://www.servicestack.net/),网上有足够的信息可以开始使用。
WCF 提供了 ASP.NET Web API,还可以,但是我没用。
无论如何,今天没有好的 REST 框架,你必须选择一个你觉得容易使用的框架,然后应用你从书中学到的理论。
【讨论】: