关于伪 RESTFul 的 URL 构造,好蛋疼,好纠结,好不淡定……

2014-03-28 14:59:24 +08:00
 cevincheung
不罗嗦。蛋疼什么呢?


比如订单吧:

是 /orders/my
还是 /my/orders

比如微博吧
是 /blogs/my
还是 /my/blogs

更详细的 /blogs/12312312312 /blogs/my/123123123
比如还有 /blog/edit/23234234还是 /blog/123123/edit



*天王盖地虎
3362 次点击
所在节点    程序员
13 条回复
zorceta
2014-03-28 15:02:20 +08:00
小鸡炖蘑菇

个人倾向于/my/blogs

这种语义化是矛盾的时候,按自己喜好选就好。
用户又不会在意URL是吧(遁
meepoli
2014-03-28 15:12:30 +08:00
我经常 给一个函数或一个变量名起名字要花上20分钟 然后5分钟就把需要写的写完了。。
zencoding
2014-03-28 15:40:01 +08:00
/C/M
lazygunner
2014-03-28 15:40:20 +08:00
既然提到RESTFul, 我倾向于 users/<user_id>/orders/<order_id> 这种方案。
至于 “/blog/123123/edit”, edit应该避免, 直接 PUT /blog/123123.
XadillaX
2014-03-28 15:43:58 +08:00
> 其实我也不知道,都是随性写的。
johnsneakers
2014-03-28 23:07:35 +08:00
我是这样写的:
[GET] http://yoursite.com/api/blog (returns all blogs)
[GET] http://yoursite.com/api/blog/1 (returns blog with PK=1)
[POST] http://yoursite.com/api/blog (create new blog)
[PUT] http://yoursite.com/api/blog/1 (update blog with PK=1)
[DELETE] http://yoursite.com/api/blog/1 (delete blog with PK=1)

仅供参考
mantianyu
2014-03-29 00:40:09 +08:00
一看lz就是 RESTful 规范文档没看仔细
konakona
2014-03-29 01:17:24 +08:00
看需求吧。
是以功能为导向还是以途径为导向呢?

以功能为导向则倾向于:blog/edit/123,blog/my/便于归纳功能。
以途径为导向则倾向于:blog/123/edit,my/blog

怎样的思考模式直接影响项目的走法,但并不影响最终的结果。
cevincheung
2014-03-29 02:55:24 +08:00
@lazygunner
@mantianyu

[ [伪] ] RESTFul。浏览器会执行put/delete的method么?
ivanlw
2014-03-29 06:54:49 +08:00
@mantianyu 求一份RESTful的规范文档行吗?
mantianyu
2014-03-29 17:10:14 +08:00
@cevincheung RESTful 不提倡 URI 里包含动词, 浏览器不支持 PUT/DELETE 的话, 在 querystring 里伪造


@ivanlw google "RESTful tutorial"
lazygunner
2014-03-30 21:33:31 +08:00
@cevincheung 为什么一定要跟RESTful挂钩呢? 如果觉着RESTful约束太麻烦,定义自己风格的api就好了,不一定非要有个什么高大上的背景。
yanke
2014-03-31 01:34:52 +08:00
@cevincheung 可以用 Method Override 的方法实现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/106281

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX