REST(Representational State Transfer) - 表征性状态转移

REST指的是一组架构约束条件和原则。

REST方面的知识主要两个方面:

一、资源的表述(资源与URI)

REST架构围绕的核心:资源
eg: 用户个人信息、优惠套餐
资源具有唯一标识(URI = URL +URN)
URI = Unified Resource Identifier
URL = Unified Resource Locater
URN = Unified Resource Name

URI的设计原则:①可寻址性原则 ②自我描述性原则
例子:

URI设计的技巧:
①使用【-】或【_】提升URI可读性
eg: http://www.oschina.nets/news/38119/oschina-translate-reward-plan。
②使用【/】标识资源的层级关系
eg: https://www.openmind.ink/orders/2012/10
③使用【?】过滤资源
eg: /git/git/pulls?state=closed 表示git中已经关闭的推入请求
④使用【,】或【;】表示同级资源关系
例如哪天github可以比较某个文件在随意两次提交记录之间的差异,或许可以使用/git/git /block-sha1/sha1.h/compare/e3af72cdafab5993d18fae056f87e1d675913d08;bd63e61bdf38e872d5215c07b264dcc16e4febca作为URI。 不过,现在github是使用…来做这个事情的,例如/git/git/compare/mas

二、资源状态转移(统一资源的操作接口)

接口使用标准HTTP协议动词遵循方法语义
按照HTTP方法的语义来暴露资源,接口将拥有安全性和幂等性的特性。

  • GET和HEAD请求是安全的 :无论请求多少次,都不会改变服务器状态。
  • GET、HEAD、PUT和DELETE请求都是幂等的 :无论对资源操作多少次,结果总是一样的,后面的请求不会产生比第一次更多的影响

统一资源接口对URI指导意义?

统一资源接口要求HTTP方法对资源进行操作。
URI表示资源的名称且不包含操作的方式

eg:不符合统一接口要求的URI:

  • GET /getUser/1
  • POST /createUser
  • PUT /updateUser/1
  • DELETE /deleteUser/1
上一篇:JavaWeb - Rest vs Restful


下一篇:提高github下载速度的方法【100%有效】可达到2MB/s