V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cevincheung
V2EX  ›  程序员

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

  •  
  •   cevincheung ·
    cevin · Mar 28, 2014 · 3780 views
    This topic created in 4413 days ago, the information mentioned may be changed or developed.
    不罗嗦。蛋疼什么呢?


    比如订单吧:

    是 /orders/my
    还是 /my/orders

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

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



    *天王盖地虎
    13 replies    1970-01-01 08:00:00 +08:00
    zorceta
        1
    zorceta  
       Mar 28, 2014 via Android
    小鸡炖蘑菇

    个人倾向于/my/blogs

    这种语义化是矛盾的时候,按自己喜好选就好。
    用户又不会在意URL是吧(遁
    meepoli
        2
    meepoli  
       Mar 28, 2014
    我经常 给一个函数或一个变量名起名字要花上20分钟 然后5分钟就把需要写的写完了。。
    zencoding
        3
    zencoding  
       Mar 28, 2014
    /C/M
    lazygunner
        4
    lazygunner  
       Mar 28, 2014
    既然提到RESTFul, 我倾向于 users/<user_id>/orders/<order_id> 这种方案。
    至于 “/blog/123123/edit”, edit应该避免, 直接 PUT /blog/123123.
    XadillaX
        5
    XadillaX  
       Mar 28, 2014
    > 其实我也不知道,都是随性写的。
    johnsneakers
        6
    johnsneakers  
       Mar 28, 2014
    我是这样写的:
    [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
        7
    mantianyu  
       Mar 29, 2014 via iPad
    一看lz就是 RESTful 规范文档没看仔细
    konakona
        8
    konakona  
       Mar 29, 2014
    看需求吧。
    是以功能为导向还是以途径为导向呢?

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

    怎样的思考模式直接影响项目的走法,但并不影响最终的结果。
    cevincheung
        9
    cevincheung  
    OP
       Mar 29, 2014
    @lazygunner
    @mantianyu

    [ [伪] ] RESTFul。浏览器会执行put/delete的method么?
    ivanlw
        10
    ivanlw  
       Mar 29, 2014 via iPhone
    @mantianyu 求一份RESTful的规范文档行吗?
    mantianyu
        11
    mantianyu  
       Mar 29, 2014
    @cevincheung RESTful 不提倡 URI 里包含动词, 浏览器不支持 PUT/DELETE 的话, 在 querystring 里伪造


    @ivanlw google "RESTful tutorial"
    lazygunner
        12
    lazygunner  
       Mar 30, 2014
    @cevincheung 为什么一定要跟RESTful挂钩呢? 如果觉着RESTful约束太麻烦,定义自己风格的api就好了,不一定非要有个什么高大上的背景。
    yanke
        13
    yanke  
       Mar 31, 2014
    @cevincheung 可以用 Method Override 的方法实现。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5781 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 08:08 · PVG 16:08 · LAX 01:08 · JFK 04:08
    ♥ Do have faith in what you're doing.