RESTful架构浅谈
2015-12-04 14:40
411 查看
REST不是一种具体的技术架构或者框架,只是在HTTP协议下大家约定俗称的一套准则,就好比大家约定俗称有一百万元就是属于百万富翁,那么如果现在拥有了一百万那么你就自动被大家认为是百万富翁;
其全称为Representational State Transfer,直接翻译为表现层状态转换;什么是表现层,说白了就是用户直接看到的view,而view从哪里来呢,都是从服务器上请求的资源,这里所说的资源可以为任何数据,比如一张图片,一段视频,一个.html文件,一个entity记录等;进而可以理解为服务器端资源的状态转换,资源的状态转换可以归纳为:
1. 创建;
2. 查询;
3. 更新;
4. 删除;
所以对应具体的开发而言,就是每个HTTP协议来讲,每个URI对应一个唯一的资源;而POST, GET, PUT, DELETE操作分别对应以上提到的状态转换;最终实现大家约定比较标准的API接口;
来发实例:
现有一个数据库表user;想实现符合RESTful规则的API;即对该表的CRUD操作;
则最终的技术输出应该是四个HTTP接口:
其全称为Representational State Transfer,直接翻译为表现层状态转换;什么是表现层,说白了就是用户直接看到的view,而view从哪里来呢,都是从服务器上请求的资源,这里所说的资源可以为任何数据,比如一张图片,一段视频,一个.html文件,一个entity记录等;进而可以理解为服务器端资源的状态转换,资源的状态转换可以归纳为:
1. 创建;
2. 查询;
3. 更新;
4. 删除;
所以对应具体的开发而言,就是每个HTTP协议来讲,每个URI对应一个唯一的资源;而POST, GET, PUT, DELETE操作分别对应以上提到的状态转换;最终实现大家约定比较标准的API接口;
来发实例:
现有一个数据库表user;想实现符合RESTful规则的API;即对该表的CRUD操作;
则最终的技术输出应该是四个HTTP接口:
POST http://hostname:port/MyProject/restful/user {user}//body为user的json形式 GET http://hostname:port/MyProject/restful/user/{id} PUT http://hostname:port/MyProject/restful/user {user}//body为user的json形式 DELETE http://hostname:port/MyProject/restful/user/{id}[/code]
说明:示例中的{id}为请求携带的参数;该参数可以为任何类型;依请求而定;以上四个API是最标准的四个,当然可以根据需求扩展接口,但是改变的应当只是参数而已;
基于以上阐述,总结如下:
REST四个基本原则:
1. 使用HTTP动词:GET POST PUT DELETE;
2. 无状态连接,服务器端不应保存过多上下文状态,即每个请求都是独立的;
3. 为每个资源设置URI;
4. 通过XML JSON进行数据传递;
实现上述原则的架构即可称为RESTFul架构。
REST的优势:
1. 互联网环境下,任何应用的架构和API可以被快速理解;
2. 分布式环境下,任何请求都可以被发送到任意服务器;
3. 异构环境下,任何资源的访问和使用方式都统一;
相关文章推荐
- 架构纵横谈之二 ---- 架构的模式与要点
- BS项目中的CSS架构_仅加载自己需要的CSS
- 关于三种主流WEB架构的思考
- Android操作系统的架构设计分析
- w3c技术架构介绍
- linux学习笔记 linux目录架构
- mysql数据库应付大流量网站的的3种架构扩展方式介绍
- 从零开始搭建MySQL MMM架构
- C/S和B/S两种架构的概念、区别和联系
- 基于JAVA中Jersey处理Http协议中的Multipart的详解
- PHP中Http协议post请求参数
- 也谈淘点点60s短信订单的架构设计
- android技术内幕心得
- SequoiaDB 笔记
- Web服务器Nginx多方位优化策略
- 面试:(设计,架构)
- 十日谈
- 【Nginx】MIME与mime.types
- 微信技术总监周颢:一亿用户背后架构秘密
- 大型网站架构改进历程:存储的瓶颈(3)