技术开发 频道

WCF中的REST架构

  【IT168 技术文档】不同的人似乎对REST有不同的定义,有些定义是非常严格的,而有些则是比较自由的。我倾向于认为REST架构存在于一个连续的范围里, 如图所示:

 

  我们可以认为REST背后隐含的基本理念如下:

  ·越简单越好

  ·Web一直是非常成功的。

  ·Web是很简单的。

  ·Web设计要遵循一些指导性原则,而这些原则在过去很长一段时间内都是可靠的。

  ·Web 服务的设计要以 Web的方式。

  尽管不同的人对 REST有不同的定义,但可以肯定的是存在一些特征来影响一个服务是否是RESTful的,或者它能不能被认为是RESTful, 或者它能否落在上面这个连续范围内的某个位置。这里列出一些(并不是全部)特征:

  ·对HTTP 方法(GET,PUT,POST,DELETE是主要的HTTP方法)的合理使用——HI-REST端倾向于对具体方法用于具体的情景进行严格的规定。例如一个HI-REST的实现中使用GET方法获取,DELETE方法用来删除,PUT方法用来插入或者更新,而POST方法则用来附加。而LO-REST的解决方案则可能使用POST方法做插入,更新,删除和附加操作。

  ·对数据表现形式的选择——HI-REST解决方案倾向于选择标准的数据表现形式,而一些LO-REST解决方案则认为POX也是一个不错的选择。

  ·对良好构造的URI的使用——HI-REST解决方案倾向于使用描述性的URI而一般情况下不使用查询字符串,而我们在一些LO-REST解决方案中可以看到对查询字符串的使用。

  ·其他:有效负荷中包含指向相关信息的链接,使用合适的HTTP 响应代码。

  我没有在什么是REST的基础上给出一个严格的定义,原因并不是我觉得这不重要。原因是,从WCF的角度,一个专门的定义无关紧要。WCF支持范围两端的REST架构(HI-REST和LO-REST)。事实上,在下一篇文章中,我将建立一个LO-REST的实现,同时在之后的文章中,我将演示HI-REST端的实现。

  如果上面这些对你来说都没有什么意义,也没有关系,下面的文章将提供具体的实例。

0
相关文章