SlideShare a Scribd company logo
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/

More Related Content

PPTX
RFC2616 HTTP/1.1 Reading Notes
PPTX
Http in development
PPT
腾讯大讲堂06 qq邮箱性能优化
PPT
Intro to REST
PPTX
JSON and REST
PPT
Rest与面向资源的web开发
PPT
Rest Ruby On Rails
PDF
REST to RESTful Web Service
RFC2616 HTTP/1.1 Reading Notes
Http in development
腾讯大讲堂06 qq邮箱性能优化
Intro to REST
JSON and REST
Rest与面向资源的web开发
Rest Ruby On Rails
REST to RESTful Web Service

Similar to Intro to rest (19)

PDF
REST & SOA
PPTX
RESTful API的设计与开发
PPTX
什么是REST风格应用
PPT
zend framework in web services
PDF
Res tful api design tw-2.0
PDF
用JAX-RS和Jersey完成RESTful Web Services
PDF
Ria的强力后盾:rest+海量存储
PDF
Jbug beijing 2011 rest easy introduction [兼容模式]
PDF
淺談後端概念
PPTX
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
PPTX
Restful
PPT
培训第一周
PDF
Real World ASP.NET MVC
PDF
API Survey #2 - Firebase realtime database
PDF
Architect 201003-by-info q
PDF
运维系统开发与Rails 3页面开发实践
KEY
分享平台构建之旅
KEY
独爽不如众乐
PPTX
Rest
REST & SOA
RESTful API的设计与开发
什么是REST风格应用
zend framework in web services
Res tful api design tw-2.0
用JAX-RS和Jersey完成RESTful Web Services
Ria的强力后盾:rest+海量存储
Jbug beijing 2011 rest easy introduction [兼容模式]
淺談後端概念
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
Restful
培训第一周
Real World ASP.NET MVC
API Survey #2 - Firebase realtime database
Architect 201003-by-info q
运维系统开发与Rails 3页面开发实践
分享平台构建之旅
独爽不如众乐
Rest
Ad

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/

Editor's Notes

  • #5: Roy Fielding, HTTP协议制定者之一