新手问题 关于 Rest 的一点困惑

chenyun · 2013年09月11日 · 最后由 chenyun 回复于 2013年09月11日 · 2212 次阅读

一个网站,有这样一个场景: 用户授权了新浪微博后,进入此网站的“我的关注”页面,会看到他在微博上关注的人。 因为业务的原因,需要把关注列表用新浪 api 取过来后,保存到自己的数据库上,但考虑到性能,一次性保存 1000 条记录可能不妥当。 因此目前的做法是将这 1000 条关注放在 memcache 中,每次用户访问“我的关注”页面时,从 cache 中取 20 条,保存到数据库 (如果已经存在就忽略),并展示给用户。 那么我的问题是:“我的关注”这个页面,应该是 GET 还是 POST 呢?用户第一次访问的时候,会改变数据,第二次访问则不会了。

目前想到的最好解法是:将保存关注这个工作变成一个后台任务,而“我的关注”只是根据 uids 分页并取数据。

我语文有点差,读了两遍,我觉得是 GET 吧。我觉得你是说你设计的 API 吧。

可能楼主觉得 GET 不改变服务器资源,而 POST 会改变服务器资源。但其实 GET 也是可以改变服务器资源。 只要是获取,而且多次获取的结果一致就用 GET .

是否改变资源是看用户视角,而不是技术视角,或者说,这种改变应该是会对用户可见的,你说的场景似乎不属于这种情况

谢谢 @nickelchen @fsword 的观点。这么理解舒服多了。

#2 楼 @jimrokliu 确实,我写这段的时候很忐忑的。表达功力还要练。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号