关于Restful风格使用的一些误区

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dongdong9223/article/details/83025876

转载请注明出处: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

参考

理解RESTful架构

RESTful API 设计指南

什么是java REST与RESTFUL

如何给老婆解释什么是Restful

【Restful】三分钟彻底了解Restful最佳实践

猜你喜欢

转载自blog.csdn.net/dongdong9223/article/details/83025876