This topic created in 4512 days ago, the information mentioned may be changed or developed.
举例子~
一个遵循RESTful标准的Blog system,想记录点击数~
这样每次GET请求后,数据库的click就加1~
那么这个Blog system就不遵循RESTful标准了~
因为GET是不能改变数据的..
难不成打开后用js调用PUT方法QAQ?
OK,如果就是这样..↑↑↑
那么,我要是想记录某一地址,比如/articles/1的被GET的次数,无论是搜索引擎爬虫的GET,还是禁用了js的GET..那么就不能遵守RESTful了吧...?
orz
15 replies • 2014-11-13 11:17:56 +08:00
 |
|
1
binux Jan 24, 2014 1
先不考虑REST是一种风格而不是一个标准 GET是允许cache的,那这时候不+1是不是与需求相悖?
|
 |
|
3
min Jan 24, 2014 3
变的是/articles/1/count,/articles/1又不会变
|
 |
|
4
alexapollo Jan 24, 2014
REST不是标准,仅是一组约束条件而已 我觉得更关键的是URI和标准方法的组合形式
|
 |
|
5
family Jan 24, 2014 via iPhone
新浪 腾讯 等api 都号称rest 但哪个遵循了?
|
 |
|
6
pyKun Jan 24, 2014
API不用都restful的,API也没法都restful,只是很典型的一部分API可以是restful的
|
 |
|
7
flytwokites Jan 24, 2014
你这个记数本身不就是记GET了多少次的数吗?哪里有悖论了?
|
 |
|
8
bcxx Jan 24, 2014 1
需求是要不幂等的,但是你举一个幂等的例子当然有问题啦
|
 |
|
9
loading Jan 24, 2014 via iPhone
它只是一种提示,我把它与我的需求融合(主要是我太水)
|
 |
|
10
otakustay Jan 24, 2014
需求上要求阅读不是一个幂等的操作,那么REST就不适合支持你的系统,就这么简单的事呗……
|
 |
|
11
flytwokites Jan 25, 2014 3
REST的定义是:
GET请求不能更改业务实体,多次重复请求也不会产生有害操作。 POST请求可以更改业务实体,所以不能重试,比如业务实体是订单的话重试会生成重复订单。
你的API记数和业务实体没有关系,GET请求不会更改API操作的业务实体,所以你的API还是REST的。
就好比所有网站都有访问请求日志,这些日志要写进数据库或log文件,当然GET请求也有日志要写,这不代表所有网站都不是REST了,因为请求日志不影响业务实体。
|
 |
|
12
wulin Jan 25, 2014
没有,你get的只是文章,文章没有改变 put的是浏览记录,应该分开对待
|
 |
|
13
akinoniku Jan 28, 2014
应该把它看作是 [对外] 幂等,内部怎么处理又是另外一回事了。
这种情况,计数器得做成子资源吧?
|
 |
|
15
kslr Nov 13, 2014
put
|