33

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

此外,您可能对 REST 提出的任何其他意见将不胜感激。

4

6 回答 6

23

ADO.Net Data Servcies使得在 .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 来表示应用程序状态来强调这一点,但它经常被忽略。

于 2008-09-13T12:19:30.610 回答
8

Windows Communication Foundation自 .NET 3.5 起支持 REST 模型

您可以在 MSDN 上找到文档和代码示例:

休息和痘

学习 REST 的一些资源:

于 2008-09-13T11:16:57.673 回答
7

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

  1. 找出数据集[即指定数据模型]。
  2. 将数据集拆分为资源。对于每种资源:
  3. 使用 URI 命名资源。
  4. 公开统一接口的一个子集[即指定使用哪些 HTTP 方法以及它们做什么]。
  5. 设计从客户端接受的表示[例如,您可以 PUT 或 POST 的 XML 格式]。
  6. 设计提供给客户端的表示[例如,您返回的 XML]。
  7. 使用超媒体链接和表单将此资源集成到现有资源中。
  8. 考虑事件的典型过程:应该发生什么?[这就像一个用例主要成功场景。]
  9. 考虑错误情况。[这就像用例异常场景。]
于 2008-09-13T11:44:28.560 回答
4

“一篇非常清晰的文章,关于如何使用美味使 Web 服务更加 RESTful”

于 2008-09-15T21:40:38.797 回答
3

来自xml.com的“ RESTful Web ”系列的文章是一个很好的介绍。

作者(Joe Gregorio,以 The Atom Publishing Protocol 闻名)还定期在他的 博客上发布有关 REST 的所有内容的有见地的文章。“ RESTify DayTrader ”(应用于基准股票交易应用程序的 REST 架构)是一个很好的起点。我也喜欢“为什么有这么多 Python Web 框架? ”,它展示了一个小型的 RESTful Web 框架在 Python 中的实现。

于 2008-09-15T23:06:37.140 回答
1

当我开始开发 REST Web 服务时,我阅读了 Mark Masse 的 REST API 设计规则手册。一旦您了解了基础知识和理论,您将能够使用 WCF、HTTPListener 或 ServiceStack 实现 REST。所有这些框架都是 .NET 并且有很好的文档记录......

我会向您推荐服务堆栈 (http://www.servicestack.net/),网上有足够的信息可以开始使用。

WCF 提供了 ASP.NET Web API,没问题,但我没用。

无论如何,今天没有好的 REST 框架,你必须选择一个你认为易于使用的框架,然后应用你从书中学到的理论。

于 2012-12-13T08:28:06.523 回答