您的位置:首页 > 其它

一个REST风格的URI设计方案[Blog Web Services]

2010-05-18 14:11 274 查看
拿Blog Web Services为例,一个REST风格的URI设计,可行乎?

/blog
get,列表,分页表示/blog?pi={pageindex}

博客分类
/blog/category
get,所有blog分类
post,创建新的分类

/blog/category/{id}
get,blog分类明细
put,修改分类
delete,删除分类

/blog/category/{id},get,blog分类明细,
这个表达是有问题的,某一类别的blog列表?

博客归档
/blog/date
get,?

/blog/date/{year}
get,某年的blog列表
/blog/date/{year}/{month}
get,某月的blog列表
/blog/date/{year}/{month}/{day}
get,某日的blog列表

博客明细
单个blog信息的Read,Update,Delete
Case1:/blog/
post,创建新的blog,而实际上/blog/是列表展示,把创建新blog和blog列表混在一起了。
/blog/{id}
get,读取
put,修改
delete,删除
【NO.1】假设/blog/{id}的id是string类型,那么恰好出现id=category|date的情况呢?

因此,需要加入资源的二级分类标示:
Case2:/blog/details/
post,创建新的blog
/blog/details/{id}
get,读取
put,修改
delete,删除

博客搜索
/blog/search?key={key}
get,搜索

有几个问题需要注意:
1.当设计的url规则需要区分顺序优先级时,是不是就可以认定是一个比较糟糕的设计?
【NO.1】
2.用户截取最后一个url片段,Web仍然能够访问
例如,当用户输入:/blog/details时,如何处理?
给出错误提示?
3.针对类似资源的批量处理
针对类似资源的批量处理,例如,
批量修改,把category=1的blog都改成category=2
批量删除,把category=1的blog删除

最新版本:http://www.gaotianpu.com/blog/detail/265
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: