转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/83025876
本文出自【我是干勾鱼的博客】
网上对Restful风格的介绍有很多,比如阮一峰老师的理解RESTful架构,RESTful API 设计指南等,大家可以参考。这里主要说说Restful使用中的一些误区。
1 URI包含动词。
这是在使用Restful风格开发时最常见的一种设计错误。Restful认为客户端访问服务器时,其实是在访问资源(Resources),什么是资源(Resources)?所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。资源可以是一张图片、一段文本、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。
因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。
举例来说,某个URI是:
/posts/show/1
其中show是动词,这个URI就设计的是有问题的,正确写法应该是:
/posts/1
然后用使用GET方法来表示show。
2 URI中加入版本号
还有一个设计误区,就是在URI中加入版本号:
http://www.test.com/app/1.0/foo
http://www.test.com/app/1.1/foo
http://www.test.com/app/2.0/foo
因为不同的版本,可以理解成同一种资源的不同表现形式,所以应该采用同一个URI。版本号可以在HTTP请求头信息的Accept字段中进行区分:
Accept: vnd.example-com.foo+json; version=1.0
Accept: vnd.example-com.foo+json; version=1.1
Accept: vnd.example-com.foo+json; version=2.0