REST入门

时间:2008-09-13 11:09:33

标签: .net web-services rest

我正在寻找一些与使用.NET创建REST ful web服务的最佳实践和示例代码的良好链接。

此外,您可能对REST有任何其他意见,我们将不胜感激。

6 个答案:

答案 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 and POX

学习REST的一些资源:

答案 2 :(得分:7)

我读过的最好的介绍是RESTful Web Services book,它不仅解释了模型和原理,还实际上向您展示了如何设计RESTful Web服务。最有用的是如何编写/指定REST API的清单:

  1. 弄清楚数据集[即指定数据模型]。
  2. 将数据集拆分为资源。对于每种资源:
  3. 使用URI命名资源。
  4. 公开统一界面的一个子集[即指定使用哪些HTTP方法以及它们的用途。
  5. 设计从客户端接受的陈述[例如您可以PUT或POST的XML格式。
  6. 设计提供给客户的陈述[例如你得到的XML]。
  7. 使用超媒体链接和表单将此资源集成到现有资源中。
  8. 考虑典型的事件过程:应该发生什么? [这就像一个用例主要成功案例。]
  9. 考虑错误情况。 [这就像用例异常情况。]

答案 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框架,你必须选择一个易于使用的框架,然后应用你从本书中学到的理论。