SlideShare una empresa de Scribd logo
1 de 11
REST 介简
高 磊
www.lostleon.com
大纲
 REST 介简
 REST Server 思想开发
 有框架支持现 (Framework)
 参考文献 & 相 源关资
REST 介简 # 1
 Web Service
 根据 W3C 的定 ,义 Web service 当是一个 件系 ,用以支应 软 统
持网 不同机器的互 操作。络间 动
 Web Service 三 最普遍的 用手段种 调
 程 程 用(远 过 调 RPC ): Web Service 提供一个分布式函数或方
法接 口供用 用户调
 面向服 架 (务 构 SOA ):通 由消息 ,而不再是某个 作讯 驱动 动
(方法 用)调
 表象化状 移态迁 ( REST ): Web Service 类似于 HTTP 或其他
类似 ,它 把接口限定在一 广 人知的 准 作中(比如协议 们 组 为 标 动
HTTP 的 GET 、 PUT 、 DELETE )以供 用调
 Representational State Transfer
 表象化状 移态迁
 Roy Fielding 博士在 2000 年他的博士 文中提出来的一 件架论 种软 构风
格
 REST 宗旨
 REST 从 源资 的角度来 察整个网 ,分布在各 的 源由观 络 处 资 URI 定,确
而客 端的 用通户 应 过 URI 来 取 源的表形。 得 些表形致使 些获 资 获 这 这
用程序 了其状 。应 转变 态
 随着不断 取 源的表形,客 端 用不断地在 着其状 ,所 表获 资 户 应 转变 态 谓
形化的状 (态转变 Representational State Transfer )
REST 介简 # 2
REST 介简 # 3
Client
(Server)
Server
vps.mobroad.com/app
…
/orders/ { id }
POST / GET / PUT / DELETE
/customers/ { id }
POST / GET / PUT / DELETE
/customers/ { id } /orders
POST / GET / PUT / DELETE
Request: GET
http://.../customers/1/orders
Response:
Content-type: XML/JSON
http://.../orders/00131
http://.../orders/00832
http://.../orders/00759
 以 品商店 例产 为
客 端 求列出户 请 id 为 1 的用 的所有户 订单
REST 介简 # 4
Uniform Interface
REST 介简 #5
 HTTP 交互
 CRUD : Create, Retrieve, Update, Delete
 Safe : 安全方法,是否改 服 器端的数据变 务
 Idempotent : 等方法,若干次串行 求是否与一次 求 生 果相同幂 请 请 产 结
Method CRUD Safe Idempotent
POST Create
update, delete X X
GET Retrieve
○ ○
PUT Update
create X ○
DELETE Delete
X ○
 取所有 品列表获 产
Request GET http://www.store.com/products
Response
<store>
<product>
<id>1</id>
<name>iPhone4</name>
</product>
<product>
<id>2</id>
<name>Mac Book Pro</name>
</product>
</store>
 取某 一 品获 单 产
Request GET http://www.store.com/product/2
Response
<product>
<id>2</id>
<name>Mac Book Pro</name>
<price>$900</price>
<popularity>100%</popularity>
</product>
REST Client 思想开发 #1
 添加一个新 品产
Request POST http://www.store.com/products
<product>
<name>iPad</name>
<price>$600</price>
<popularity>90%</popularity>
</product>
Response
http://www.store.com/product/3
 更新某个指定 id 的 品产
Request PUT http://www.store.com/product/1
<product>
<price>$300</price>
</product>
Response
(only header)
 除某 一 品删 单 产
Request DELETE http://www.store.com/product/2
Response
(only header)
REST Server 思想开发 # 1
有框架支持现 (Framework)
 No Framework, No PUT / DELETE
 PHP-based Framework
Zend
 Ruby on Rails
参考文献 & 相 源关资
 http://www.ics.uci.edu/~fielding/pubs/di
ssertation/rest_arch_style.htm
 “RESTful Web Services”; Leonard
Richardson, Sam Ruby; (First Edition)
May 2007
 http://www.wikipedia.org/

Más contenido relacionado

Similar a Intro to REST

Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Gelis Wu
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Servicesjavatwo2011
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0qianshi
 
Http1.1协议
Http1.1协议Http1.1协议
Http1.1协议chen bo
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见mysqlops
 
Java技术讲座 网络编程
Java技术讲座 网络编程Java技术讲座 网络编程
Java技术讲座 网络编程xujie
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Railsshaokun
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见CFC4N CHEN
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性liu sheng
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计notes4mark
 
計算機概論期末報告
計算機概論期末報告計算機概論期末報告
計算機概論期末報告chia830119
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVCjeffz
 
API Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseAPI Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseSzuping Wang
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕ideawu
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 

Similar a Intro to REST (20)

Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
 
Http1.1协议
Http1.1协议Http1.1协议
Http1.1协议
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见
 
Java技术讲座 网络编程
Java技术讲座 网络编程Java技术讲座 网络编程
Java技术讲座 网络编程
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Rails
 
network2
network2network2
network2
 
RESTful
RESTfulRESTful
RESTful
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计
 
計算機概論期末報告
計算機概論期末報告計算機概論期末報告
計算機概論期末報告
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
Web service
Web serviceWeb service
Web service
 
API Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseAPI Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime database
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 

Intro to REST

  • 2. 大纲  REST 介简  REST Server 思想开发  有框架支持现 (Framework)  参考文献 & 相 源关资
  • 3. REST 介简 # 1  Web Service  根据 W3C 的定 ,义 Web service 当是一个 件系 ,用以支应 软 统 持网 不同机器的互 操作。络间 动  Web Service 三 最普遍的 用手段种 调  程 程 用(远 过 调 RPC ): Web Service 提供一个分布式函数或方 法接 口供用 用户调  面向服 架 (务 构 SOA ):通 由消息 ,而不再是某个 作讯 驱动 动 (方法 用)调  表象化状 移态迁 ( REST ): Web Service 类似于 HTTP 或其他 类似 ,它 把接口限定在一 广 人知的 准 作中(比如协议 们 组 为 标 动 HTTP 的 GET 、 PUT 、 DELETE )以供 用调
  • 4.  Representational State Transfer  表象化状 移态迁  Roy Fielding 博士在 2000 年他的博士 文中提出来的一 件架论 种软 构风 格  REST 宗旨  REST 从 源资 的角度来 察整个网 ,分布在各 的 源由观 络 处 资 URI 定,确 而客 端的 用通户 应 过 URI 来 取 源的表形。 得 些表形致使 些获 资 获 这 这 用程序 了其状 。应 转变 态  随着不断 取 源的表形,客 端 用不断地在 着其状 ,所 表获 资 户 应 转变 态 谓 形化的状 (态转变 Representational State Transfer ) REST 介简 # 2
  • 5. REST 介简 # 3 Client (Server) Server vps.mobroad.com/app … /orders/ { id } POST / GET / PUT / DELETE /customers/ { id } POST / GET / PUT / DELETE /customers/ { id } /orders POST / GET / PUT / DELETE Request: GET http://.../customers/1/orders Response: Content-type: XML/JSON http://.../orders/00131 http://.../orders/00832 http://.../orders/00759  以 品商店 例产 为 客 端 求列出户 请 id 为 1 的用 的所有户 订单
  • 6. REST 介简 # 4 Uniform Interface
  • 7. REST 介简 #5  HTTP 交互  CRUD : Create, Retrieve, Update, Delete  Safe : 安全方法,是否改 服 器端的数据变 务  Idempotent : 等方法,若干次串行 求是否与一次 求 生 果相同幂 请 请 产 结 Method CRUD Safe Idempotent POST Create update, delete X X GET Retrieve ○ ○ PUT Update create X ○ DELETE Delete X ○
  • 8.  取所有 品列表获 产 Request GET http://www.store.com/products Response <store> <product> <id>1</id> <name>iPhone4</name> </product> <product> <id>2</id> <name>Mac Book Pro</name> </product> </store>  取某 一 品获 单 产 Request GET http://www.store.com/product/2 Response <product> <id>2</id> <name>Mac Book Pro</name> <price>$900</price> <popularity>100%</popularity> </product> REST Client 思想开发 #1  添加一个新 品产 Request POST http://www.store.com/products <product> <name>iPad</name> <price>$600</price> <popularity>90%</popularity> </product> Response http://www.store.com/product/3  更新某个指定 id 的 品产 Request PUT http://www.store.com/product/1 <product> <price>$300</price> </product> Response (only header)  除某 一 品删 单 产 Request DELETE http://www.store.com/product/2 Response (only header)
  • 10. 有框架支持现 (Framework)  No Framework, No PUT / DELETE  PHP-based Framework Zend  Ruby on Rails
  • 11. 参考文献 & 相 源关资  http://www.ics.uci.edu/~fielding/pubs/di ssertation/rest_arch_style.htm  “RESTful Web Services”; Leonard Richardson, Sam Ruby; (First Edition) May 2007  http://www.wikipedia.org/

Notas del editor

  1. Roy Fielding, HTTP协议制定者之一