我正在寻找一些与使用.NET创建REST ful web服务的最佳实践和示例代码的良好链接。
此外,您可能对REST有任何其他意见,我们将不胜感激。
答案 0 :(得分:23)
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中提出的架构约束中最具争议性和最少理解的。事实上,菲尔丁的论文中包含一个明确的论点,反对使用HTTP cookie来表示应用程序状态,以便将这一点归结为主,但它经常被忽略。
答案 1 :(得分:8)
Windows Communication Foundation supports REST model since .NET 3.5。
您可以在MSDN上找到文档和代码示例:
学习REST的一些资源:
答案 2 :(得分:7)
我读过的最好的介绍是RESTful Web Services book,它不仅解释了模型和原理,还实际上向您展示了如何设计RESTful Web服务。最有用的是如何编写/指定REST API的清单:
答案 3 :(得分:4)
答案 4 :(得分:3)
来自RESTful Web的“xml.com”系列文章很棒 介绍
作者(The Atom Publishing Protocol成名的Joe Gregorio)也是 定期发表有关他所有REST的有见地的文章 weblog。 “RESTify DayTrader”(REST 应用于基准股票交易应用程序的架构是一个很好的起点。我也喜欢“Why so many Python web frameworks?”,它显示了Python中一个小型的restful Web框架的实现。
答案 5 :(得分:1)
当我开始开发REST Web服务时,我阅读了Mark Masse的REST API设计规则手册。一旦了解了基础知识和理论,就可以使用WCF,HTTPListener或ServiceStack实现REST。所有这些框架都是.NET,并且有很好的文档......
我会向你推荐服务堆栈(http://www.servicestack.net/)网上有足够的信息可以开始使用。
WCF提供ASP.NET Web API,没关系,但我不使用它。
无论如何,今天没有好的REST框架,你必须选择一个易于使用的框架,然后应用你从本书中学到的理论。