restful http架构实战
INFOQ昨天这篇文章对近期REST架构的讨论进行了一次小小总结,是关注REST架构网友的重要阶段性文章:
1. GET POST PUT DELETE是统一接口,是对每个资源都有一个统一的GET POST PUT DELETE操作。GET POST PUT DELETE是独立于资源的。
GET PUT DELETE是幂等的,可以被多次执行,结果都是同样,而POST 不是幂等的。所以,POST是最后不得不选择的方法,POST可以弥补PUT方法,
http://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post
GET: 获得资源的表现输出;
DELETE:删除资源
PUT:用客户端管理的id创建一个新资源;修改一个资源替换它;
POST:用服务器端管理的id创建一个资源;创建一个子资源;更新部分资源
RESTful HTTP可以实现CRUD,但是不只是CRUD。
2. Resources 资源最初定义不是基于对象模型,而是基于网络资源角度。对象模型可以映射到资源。资源是可以通过唯一标识URI从网络端访问的。如下图
资源将产生表现输出,资源自己不会通过网络传送,是资源的表现传送。一个表现输出由数据和描述数据的元数据组成。
总结:REST和SOA区别是从不同角度看问题,SOA是从服务 方法 模型看问题,比较容易理解,但是可伸缩性就成了第二位,也就是没有融入SOA血液中。而REST则是把可伸缩性融入血液,REST就是分布式 可伸缩的,这方面可见标签REST中我写的其他文章。