1 
                    
                    paradislover      2014-12-16 13:08:40 +08:00 
                    
                    以前参考过http://www.ruanyifeng.com/blog/2014/05/restful_api.html 
                自己分组或者添加ID范围?  | 
            
     2 
                    
                    tairan2006      2014-12-16 13:11:47 +08:00 
                    
                    单条和批量本质上是一样的啊,都是通过query string确定,只是单条有唯一标识符(比如id=1),批量就是一个范围(id>3&id<5). 
                 | 
            
     3 
                    
                    icanfork      2014-12-16 13:17:57 +08:00 
                    
                    
                 | 
            
     4 
                    
                    welsmann      2014-12-16 13:20:41 +08:00    为了restful而restful这样好么... 
                 | 
            
     5 
                    
                    ozking      2014-12-16 13:25:02 +08:00 
                    
                    “ 一般不建议在请求时添加消息体body”,我最后还是加了body,方便-_-# 
                 | 
            
     6 
                    
                    arron      2014-12-16 13:25:47 +08:00 
                    
                    users/:action?id[]=1&id[]=2&id[]=4 
                这样前端一组checkbox,后端一个array,方便。  | 
            
     7 
                    
                    ozking      2014-12-16 13:30:14 +08:00 
                    
                    不过很多库都不支持delete with body,lz慎重选择 
                 | 
            
     8 
                    
                    hcymk2      2014-12-16 13:35:44 +08:00 
                    
                    如果批量删除数据的size比较小 ,并且是具体的数据,可以用3L的方式 而且有些restful框架支持将3L方式的path转换成数组。 
                 | 
            
     9 
                    
                    GhostFlying      2014-12-16 13:37:40 +08:00 
                    
                    Google 的做法似乎是 batch request 
                 | 
            
     10 
                    
                    jayn1985   OP  | 
            
     11 
                    
                    jayn1985   OP @welsmann 求解决方法,主要是目前使用的各种http method都各司其职,不想专门针对这个case来做workaround,LZ有些许代码洁癖,额。。。 
                 | 
            
     12 
                    
                    bsbgong      2014-12-16 16:07:26 +08:00 
                    
                    如果你用uuid作为id,又要这个批处理API的话。 
                我能想到的就是模仿http中的chuncked方式通信。约定总数或设置结束标记,前台分次发送,后台做缓存,结束标记时统一处理,返回结果。 顺便问一下:对表记录的id属性,为什么使用uuid? 我觉得是浪费,乱用uuid。  | 
            
     13 
                    
                    lygmqkl      2014-12-16 17:35:14 +08:00 
                    
                    特殊情况还是用body吧,个人感觉uuid 很费。。。。没有必要。。。 
                也可以换一种思路,一个post + 一个delete post: save workflow into table, like operate.o_id=12, have 12 uuid delete: delete/o_id  | 
            
     14 
                    
                    lygmqkl      2014-12-16 17:35:58 +08:00 
                    
                    btw, 一般遇到这种情况我会选择一种非restful的方法来实现,为了保证开发时效。 
                 | 
            
     15 
                    
                    gevin      2014-12-16 21:51:44 +08:00 
                    
                    这篇文章设计了一个用put做soft delete的变通批量删除方法 
                http://www.l1ghtm4n.com/post/53259404576/patterns-for-rest-api-bulk-operations 我个人觉得REST批量删除还是尽量避免  | 
            
     16 
                    
                    ryanking8215      2014-12-17 07:08:38 +08:00 via iPhone 
                    
                    jsonapi.org 撸主可以参考一下 
                 | 
            
     17 
                    
                    jayn1985   OP  | 
            
     18 
                    
                    jayn1985   OP @gevin 这篇文章恰好昨天再发这个帖子之前也看到了,归根到底还是一种变通的方式,不过确实如前面几位童鞋说,restful设计只是一种guideline,有些时候还是需要综合考虑和衡量 
                 | 
            
     19 
                    
                    bsbgong      2014-12-17 10:46:02 +08:00 
                    
                    @jayn1985  
                我也是前段时间去查了下uuid,以前没怎么注意。 https://github.com/simongong/js-stackoverflow-highest-votes/blob/master/questions1-10/how-to-create-a-UUID-in-javascript.md 一般程序里都没必要用uuid,你需要的只是一个uniq id。 这跟mysql的性能问题关系不大,主键的长短不影响索引的结构。当然最查找性能还是有点影响,毕竟不是自增量。而且最核心的匹配就是字符串比较,越长越慢呗。 至于商业隐患,这就看你们自己的衡量了。  |