RESTful任我行<br />RESTful介绍及最佳实践<br />Medcl,2010.6.4<br />
前情提要<br />REST是什么?<br />Why RESTful ?<br />RESTful.NET !<br />
REST、RESTful???<br />Roy Thomas Fielding博士2000年提出<br />REST是英文Representational State Transfer的缩写<br />REST是WEB服务的一种架构风格<br...
 REST 架构的主要原则<br />网络上的所有事物都可被抽象为资源(Resource)<br />每个资源都有一个唯一的资源标识符(Resource Identifier)<br />同一资源具有多种表现形式(xml、json等)<br /...
资源、资源、资源<br />处处皆资源(Resource):<br />2010公司的销售数据<br />小明09年一月份看过的书<br />正在上映的电影<br />公司销售的产品清单<br />… …<br />REST与资源<br />R...
资源与URIDesign<br />RESTful风格的一大特色就是使用URI来标示资源<br />URI 和 URL<br />http://example.com/users/http://example.com/users/{user} ...
资源操作<br />http://example.com/users/<br />GET  :获取一个资源 POST :创建一个新的资源 PUT :修改一个资源的状态 DELETE :删除一个资源 <br />
资源展现<br />Xml<br />Json<br />Xhtml<br />RSS/Atom<br />Other Media types<br />
无状态性<br />无状态性使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前 Request,而不必了解前面 Request 的历史<br />无状态性减少了服务器从局部错误中恢复的任务量,可以非常方便地实现 Fail Over...
RESTful优缺点<br />SOAP、WSDL、WS*<br />REST<br /> RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源<br />SO WHY REST?<br />轻量级、HTTP<br...
REST不是什么?<br />REST不是技术 <br />REST不是CRUD<br />
RESTful.NET<br />REST在.NET平台下的最佳实践<br />WCF RESTful Programming Model<br />Hosting WCF RESTful Services<br />Securing REST...
前提准备<br />WCF REST Service Start Kit <br />visual studio 2008 sp1 <br /> .net framework 3.5 sp1<br />Fiddler(客户端调试)<br />
URI<br />http://localhost:8080/rest/User<br />http://localhost:8080/rest/User/{userName}<br />http://localhost:8080/rest/U...
添加<br />POST http://localhost:8080/rest/User<br />User-Agent: Fiddler<br />Host: localhost:8080<br />Content-Length: 22<br...
修改<br />PUT http://localhost:8080/rest/User<br />Content-Length: 53<br />Content-Type: application/json<br />Host: localho...
查询<br />http://localhost:8080/rest/User<br />http://localhost:8080/rest/User/admin<br />http://localhost:8080/rest/User/xm...
Restful
Upcoming SlideShare
Loading in...5
×

Restful

3,175

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,175
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
42
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Restful

  1. 1. RESTful任我行<br />RESTful介绍及最佳实践<br />Medcl,2010.6.4<br />
  2. 2. 前情提要<br />REST是什么?<br />Why RESTful ?<br />RESTful.NET !<br />
  3. 3. REST、RESTful???<br />Roy Thomas Fielding博士2000年提出<br />REST是英文Representational State Transfer的缩写<br />REST是WEB服务的一种架构风格<br />REST一种新型的分布式软件设计架构<br />使用HTTP、URI等广泛流行的标准和协议<br />
  4. 4.  REST 架构的主要原则<br />网络上的所有事物都可被抽象为资源(Resource)<br />每个资源都有一个唯一的资源标识符(Resource Identifier)<br />同一资源具有多种表现形式(xml、json等)<br />对资源的各种操作不会改变资源标识符<br />所有的操作都是无状态的(Stateless)<br />Ps:符合REST原则的架构方式即可称为RESTful<br />
  5. 5. 资源、资源、资源<br />处处皆资源(Resource):<br />2010公司的销售数据<br />小明09年一月份看过的书<br />正在上映的电影<br />公司销售的产品清单<br />… …<br />REST与资源<br />REST面向的对象是资源<br />RE——表现,即media type的设计。 <br />ST——通过跟踪超链接实现状态迁移。<br />
  6. 6. 资源与URIDesign<br />RESTful风格的一大特色就是使用URI来标示资源<br />URI 和 URL<br />http://example.com/users/http://example.com/users/{user} (one for each user)<br />http://example.com/findUserForm<br />http://example.com/locations/<br />http://example.com/locations/{location} (one for each location)<br />http://example.com/findLocationForm<br />
  7. 7. 资源操作<br />http://example.com/users/<br />GET :获取一个资源 POST :创建一个新的资源 PUT :修改一个资源的状态 DELETE :删除一个资源 <br />
  8. 8. 资源展现<br />Xml<br />Json<br />Xhtml<br />RSS/Atom<br />Other Media types<br />
  9. 9. 无状态性<br />无状态性使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前 Request,而不必了解前面 Request 的历史<br />无状态性减少了服务器从局部错误中恢复的任务量,可以非常方便地实现 Fail Over 技术,从而很容易地将服务器组件部署在集群内<br />无状态性使得服务器端不必在多个 Request 中保存状态,从而可以更容易地释放资源<br />无状态性无需服务组件保存 Request 状态,因此可让服务器充分利用 Pool 技术来提高稳定性和性能<br />
  10. 10. RESTful优缺点<br />SOAP、WSDL、WS*<br />REST<br /> RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源<br />SO WHY REST?<br />轻量级、HTTP<br />无状态请求可以由任何可用服务器回答,分布式、缓存、云计算<br />资源唯一URI、标准接口<br />基于成熟HTTP的安全模型<br />Simplicity、human-friendly … …<br />
  11. 11. REST不是什么?<br />REST不是技术 <br />REST不是CRUD<br />
  12. 12. RESTful.NET<br />REST在.NET平台下的最佳实践<br />WCF RESTful Programming Model<br />Hosting WCF RESTful Services<br />Securing REST Endpoints<br />
  13. 13. 前提准备<br />WCF REST Service Start Kit <br />visual studio 2008 sp1 <br /> .net framework 3.5 sp1<br />Fiddler(客户端调试)<br />
  14. 14. URI<br />http://localhost:8080/rest/User<br />http://localhost:8080/rest/User/{userName}<br />http://localhost:8080/rest/User/xml<br /> /// <summary><br />/// 用户信息<br /> /// </summary><br /> [DataContract(Name = "User")]<br /> public class UserInfo<br />{<br /> [DataMember]<br /> public string UserName;<br /> [DataMember]<br /> public string Birthday;<br />}<br />
  15. 15. 添加<br />POST http://localhost:8080/rest/User<br />User-Agent: Fiddler<br />Host: localhost:8080<br />Content-Length: 22<br />Content-Type: application/json<br />{"userName":"Aobama"}<br />
  16. 16. 修改<br />PUT http://localhost:8080/rest/User<br />Content-Length: 53<br />Content-Type: application/json<br />Host: localhost:8080<br />{"user":{"Birthday":"1977/1/1","UserName":"medcl"}}<br />
  17. 17. 查询<br />http://localhost:8080/rest/User<br />http://localhost:8080/rest/User/admin<br />http://localhost:8080/rest/User/xml<br />http://localhost:8080/rest/Icon/<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×