SlideShare ist ein Scribd-Unternehmen logo
1 von 66
REST  &  R uby  o n  R ails 伍 少 坤 [email_address]
关于  Kude Labs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
R E S T
我将要分享的…… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REST ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
一种抽象的概念、架构蓝图 Just an Architecture, Not a Standard or Protocol 描述基于互联网的分布式系统 Describe Internet Based Remote System
R emote  P rocedure  C alls ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REST  vs  RPC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Resource CRUD HTTP Verb
Resource ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CRUD & HTTP Verb ,[object Object],[object Object],[object Object],[object Object],SQL CRUD HTTP DELETE DELETE DELETE UPDATE UPDATE PUT SELECT READ GET INSERT CREATE POST
REST Ruby on Rails
Ruby on Rails ,[object Object],[object Object],[object Object],[object Object],[object Object]
REST Ruby on Rails ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
POST /projects/create create /projects POST POST /projects/update/1 update /projects/1 PUT GET /projects/destroy/1 destroy /projects/1 DELETE GET /projects/show/1 show /projects/1 GET URL without REST Action URL with REST HTTP Verb
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
User + Group = ?
[object Object],[object Object],[object Object],Users UsersGroups Groups 1 N N 1
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
用例  Use Case User join Group User leave Group
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],
User  +  Group  =  UserGroup Membership
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],
mine types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Nested Resrouce ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],只是想对某个  Group  中的  Users  进行操作呢?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REST  世界中的  Ajax  客户端
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RESTful Login & Search?
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RESTful Search? ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Twitter & Facebook API
Twitter API ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
http://twitter.com/statuses/destroy/statusid.format DELETE/ POST 删除一个  Status http://twitter.com/statuses/update.format POST 创建一个新的  Status http://twitter.com/statues/show/statusid.format GET 获取特定用户的某一个  Status http://twitter.com/statues/user_timeline/userid.format GET 获取特定用户的  Statuses http://twitter.com/statuses/public_timeline GET 获取所有用户的  Statuses URL HTTP Verb 操作
GET /users/kudelabs/statuses.xml GET /statuses/user_timeline/kudelabs.xml
完全的  RESTful Twitter API /users/{user_id}/statuses/{status_id}.format PUT 更新一个  Status /users/{user_id}/statuses/{status_id}.format DELETE 删除一个  Status /users/{user_id}/statuses.format POST 创建一个新的  Status /users/{user_id}/statues/{status_id}.format GET 获取特定用户的某一个  Status /users/{user_id}/statuses.format GET 获取特定用户的  Statuses /statuses.format GET 获取所有用户的  Statuses URL HTTP Verb 操作
Facebook API ,[object Object],[object Object],[object Object],[object Object]
RESTful API? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
只是一种  RPC API ,[object Object],[object Object],[object Object],[object Object],[object Object]
T i p s
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RESTful too MUCH
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
mark_spam 并不是一个标准的  Action 并不遵循  REST  架构
I am creating a SPAM resource! POST /bookmarks/1/comments/2/spam 
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],  
POST /users/1/bookmarks/2/comments/3/spams POST /comments/3/mark_spam   
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
POST /restserver.php?method=Users.getInfo&   format=xml&   id=398382 GET /users/398382.xml
如果你还有兴趣……
http://media.rubyonrails.org/presentations/worldofresources.pdf
O’REILLY  出版的  RESTful Web Services
git clone http://github.com/shaokun/rest
或者来  Kude Labs  做客
Q & A [email_address]

Weitere ähnliche Inhalte

Andere mochten auch

VIM for the PHP Developer
VIM for the PHP DeveloperVIM for the PHP Developer
VIM for the PHP DeveloperJohn Congdon
 
Rails web api 开发
Rails web api 开发Rails web api 开发
Rails web api 开发shaokun
 
Git flow
Git flowGit flow
Git flowshaokun
 
iOS 图片浏览器 DIY
iOS 图片浏览器 DIYiOS 图片浏览器 DIY
iOS 图片浏览器 DIYshaokun
 
More to RoC weibo
More to RoC weiboMore to RoC weibo
More to RoC weiboshaokun
 
WebSocket 实时推特流
WebSocket 实时推特流WebSocket 实时推特流
WebSocket 实时推特流shaokun
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular applicationmirrec
 
Namespace less engine
Namespace less engineNamespace less engine
Namespace less engineshaokun
 

Andere mochten auch (9)

VIM for the PHP Developer
VIM for the PHP DeveloperVIM for the PHP Developer
VIM for the PHP Developer
 
Rails web api 开发
Rails web api 开发Rails web api 开发
Rails web api 开发
 
Git flow
Git flowGit flow
Git flow
 
iOS 图片浏览器 DIY
iOS 图片浏览器 DIYiOS 图片浏览器 DIY
iOS 图片浏览器 DIY
 
More to RoC weibo
More to RoC weiboMore to RoC weibo
More to RoC weibo
 
WebSocket 实时推特流
WebSocket 实时推特流WebSocket 实时推特流
WebSocket 实时推特流
 
Rack
RackRack
Rack
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
 
Namespace less engine
Namespace less engineNamespace less engine
Namespace less engine
 

Ähnlich wie Rest Ruby On Rails

API Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseAPI Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseSzuping Wang
 
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0) My own sweet home!
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methodsyiditushe
 
Erlang Practice
Erlang PracticeErlang Practice
Erlang Practicelitaocheng
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集zhen chen
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)wangjiaz
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训lotusprince
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsHo Kim
 
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5lovingprince58
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享Cam Song
 
Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南yiditushe
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践yiditushe
 

Ähnlich wie Rest Ruby On Rails (20)

API Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime databaseAPI Survey #2 - Firebase realtime database
API Survey #2 - Firebase realtime database
 
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methods
 
Erlang Practice
Erlang PracticeErlang Practice
Erlang Practice
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训
 
RESTful
RESTfulRESTful
RESTful
 
CRUD 綜合運用
CRUD 綜合運用CRUD 綜合運用
CRUD 綜合運用
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
 
使用 Controller
使用 Controller使用 Controller
使用 Controller
 
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享
 
Intro to REST
Intro to RESTIntro to REST
Intro to REST
 
Intro to rest
Intro to restIntro to rest
Intro to rest
 
使用 Controller
使用 Controller使用 Controller
使用 Controller
 
Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南
 
Jsp讲义
Jsp讲义Jsp讲义
Jsp讲义
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 

Rest Ruby On Rails