[学习笔记] 理解RESTful架构 整理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[学习笔记] 理解RESTful架构 整理相关的知识,希望对你有一定的参考价值。


文章学习来源:http://www.ruanyifeng.com/blog/2011/09/restful.html 阮一峰

 

网站即软件

  • 客户端/服务器模式
  • 建立在分布式体系上,通过互联网通信
  • 特点:高延时,高并发等

使用流行架构:RESTful。

一、起源:Fielding2000年博士论文

二、名称:REST=Representational State Transfer[表现层状态转化]

三、资源

  • 表现层=资源的表现层
  • 资源=网络实体:1段文本、1张图片等
  • URL(统一资源定位符)=指向资源,一对一代表实体位置

四、表现层

表现层=资源呈现的形式:文本-txt格式/json格式等,图片jpg格式/png格式等呈现

描述:HTTP请求头信息在Accept和Content-Type中指定

五、状态转化

访问:客户端&服务器互动过程中==>数据和状态的变化

  • 客户端通过手段让服务器发生状态变化

手段:HTTP协议

操作方式:

  • GET:获取资源
  • POST:新建资源/更新资源
  • PUT:更新资源
  • DELETE:删除资源

六、综述:

  • 每个url代表一种资源
  • 客户端和服务器之间传递该资源的某表现层(txt或png)
  • 客户端通过HTTP四个动词操作服务器端资源==>实现表现层状态转化

七、设计误区:

1、URI包含动词:

  • 资源表示实体应为名词
  • 动词应放在HTTP协议中
  • ex1:/posts/show/1 ==> /posts/1 || 用GET方法表示show
  • /*实例:账户1向账户2汇款500元*/
    // 错误
    POST /accounts/1/transfer/500/to/2
    //正确:将transfer改为名词transaction
    POST /transaction HTTP/1.1
    Host: 127.0.0.1
    
    from=1&to=2&amount=500.00

2、URI中有版本号

  • 因不同版本为同一资源的不同形式,所以采用同一URI
  • 版本号可通过HTTP请求头的Accept字段中区分
  • // 错误
    http://www.ex.com/app/1.0/foo
    http://www.ex.com/app/1.1/foo
    
    //正确(包含网址、格式形式、版本号)
    Accept: vnd.ex-com.foo+json;version=1.0
    Accept: vnd.ex-com.foo+json;version=1.1

以上是关于[学习笔记] 理解RESTful架构 整理的主要内容,如果未能解决你的问题,请参考以下文章

[学习笔记] RESTful API 设计指南 笔记整理

读书笔记丨远程服务调用和RESTful,如何分析和抉择?

Xitrum学习笔记04 - RESTful APIs

理解RESTful架构

Java Web学习总结(44)—— RESTful 架构和 RESTful API 设计总结

Java Web学习总结(44)—— RESTful 架构和 RESTful API 设计总结