WCF中有一种比较重要的架构,WCF REST。我们今天将会通过这篇文章为大家详细讲述有关WCF REST这一系统架构的具体定义以及相关应用方法,帮助大家解决一些在实际开发中遇到的问题。#t#
不同的人似乎对REST有不同的定义,有些定义是非常严格的,而有些则是比较自由的。我倾向于认为REST架构存在于一个连续的范围里。
我们可以认为WCF REST背后隐含的基本理念如下:
· 越简单越好
· Web一直是非常成功的。
· Web是很简单的。
· Web设计要遵循一些指导性原则,而这些原则在过去很长一段时间内都是可靠的。
· Web 服务的设计要以 Web的方式。
尽管不同的人对WCF 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 响应代码。
我没有在什么是WCF REST的基础上给出一个严格的定义,原因并不是我觉得这不重要。原因是,从WCF的角度,一个专门的定义无关紧要。WCF支持范围两端的REST架构(HI-REST和LO-REST)。事实上,在下一篇文章中,我将建立一个LO-REST的实现,同时在之后的文章中,我将演示HI-REST端的实现。