使用_或-来让URI可读性更好
曾经Web上的URI都是冰冷的数字或者无意义的字符串,但现在越来越多的网站
使用_或-来分隔一些单词,让URI看上去更为人性化。 例如国内比较出名的开源
中国社区,它上面的新闻地址就采用这种风格, 如http://www.oschina.net/new
s/38119/oschina-translate-reward-plan。
使用/来表示资源的层级关系
例如上述/git/git/commit/e3af72cdafab5993d18fae056f87e1d675913d08就表示
了一个多级的资源, 指的是git用户的git项目的某次提交记录,又例如/orders/20
12/10可以用来表示2012年10月的订单记录。
使用?用来过滤资源
很多人只是把?简单的当做是参数的传递,很容易造成URI过于复杂、难以理
解。可以把?用于对资源的过滤, 例如/git/git/pulls用来表示git项目的所有推入请
求,而/pulls?state=closed用来表示git项目中已经关闭的推入请求, 这种URL通
常对应的是一些特定条件的查询结果或算法运算结果。
,或;可以用来表示同级资源的关系
有时候我们需要表示同级资源的关系时,可以使用,或;来进行分割。例如哪天git
hub可以比较某个文件在随意两次提交记录之间的差异,或许可以使用/git/git /bl
ock-sha1/sha1.h/compare/e3af72cdafab5993d18fae056f87e1d675913d08;bd6
3e61bdf38e872d5215c07b264dcc16e4febca作为URI。 不过,现在github是使
用…来做这个事情的,例如/git/git/compare/master…next。
2. 2 统一资源接口
RESTful架构应该遵循统一接口原则,统一接口包含了一组受限的预定义的操
作,不论什么样的资源,都是通过使用相同的接口进行资源的访问。接口应该使
用标准的HTTP方法如GET,PUT和POST,并遵循这些方法的语义。
如果按照HTTP方法的语义来暴露资源,那么接口将会拥有安全性和幂等性的特
性,例如GET和HEAD请求都是安全的, 无论请求多少次,都不会改变服务器
状态。而GET、HEAD、PUT和DELETE请求都是幂等的,无论对资源操作多少
次, 结果总是一样的,后面的请求并不会产生比第一次更多的影响。
下面列出了GET,DELETE,PUT和POST的典型用法:
GET
安全且幂等
获取表示
变更时获取表示(缓存)