我正在寻找一些关于使用.NET 创建REST ful Web服务的最佳实践和示例代码的良好链接.
此外,您可能对REST有任何其他输入将非常感激.
ADO.Net数据服务使得在.Net世界中构建和使用 RESTful Web 服务变得非常容易,但是理解这些概念很重要.与WCF(稍后添加REST支持)相比,ADO.Net数据服务主要是为REST构建的.
构建RESTful Web服务的准则包含您所需资源的所有信息.
这是另一个有用的博客条目:
统一接口约束描述了为Web构建的服务如何成为Web体系结构的良好参与者.这些约束简要描述如下:
1)资源的识别:资源是可以命名和表示的任何信息项(例如,文档,给定时间点的股票价格,拉斯维加斯的当前天气等).应使用URI标识服务中的资源.
2)通过表示来操纵资源:表示是资源的物理表示,并且应该对应于有效的媒体类型.使用标准媒体类型作为服务背后的数据格式,可以让广泛的潜在客户访问您的服务,从而扩大服务范围.与资源的交互应基于对由其URI标识的资源的表示的检索和操纵.
3)自描述消息:遵循服务交互中的无状态原则,使用标准媒体类型并通过HTTP方法使用和控制头正确指示消息的可缓存性,确保消息是自描述的.自描述消息使得消息可以由客户端和服务器之间的中介处理而不会影响任何一个.
4)超媒体作为应用程序状态的引擎:应该使用URI和超链接来表示应用程序状态以在状态之间转换.这可能是Roy Fielding论文中提出的建筑约束中最具争议性和最少理解的.实际上,Fielding的论文包含一个明确的论据,反对使用HTTP cookie来表示应用程序状态,以便将这一点归结为家庭,但它经常被忽略.
自.NET 3.5以来, Windows Communication Foundation 支持REST模型.
您可以在MSDN上找到文档和代码示例:
REST和POX
学习REST的一些资源:
xFront.com上的REST文档
建筑风格与基于网络的软件体系结构设计.第5章:具象状态转移(REST)(Roy Fielding的博士论文 - REST的作者)
维基百科条目
我读过的最好的介绍是RESTful Web Services一书,它不仅解释了模型和原理,还实际上向您展示了如何设计RESTful Web服务.最有用的是如何编写/指定REST API的清单:
找出数据集[即指定数据模型].
将数据集拆分为资源.对于每种资源:
使用URI命名资源.
公开统一接口的子集[即指定使用哪些HTTP方法及其执行的操作].
设计从客户端接受的表示[例如,您可以PUT或POST的XML格式].
设计提供给客户端的表示[例如,您获得的XML].
使用超媒体链接和表单将此资源集成到现有资源中.
考虑典型的事件过程:应该发生什么?[这就像用例主要成功案例.]
考虑错误情况.[这就像用例异常情况.]