restful
前后端分离优点:
1. pc,app,pad多端适应
2. SPA开发模式开始流行
3. 前后端开发职责不清
4. 开发效率,前后端互相等待
5. 后台开发语言和模板高度耦合,导致开发语言依赖严重
前后端分离缺点:
1. 前后端学习门槛增加
2. 数据依赖导致文档重要性增加
3. SEO难度增加
4. 后端开发模式迁移增加成本
restful综述:
1. 每一个URI代表一种资源
2. 客户端和服务器之间,传递这种资源的某种表现层
3. 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"
设计:
版本http://api.example.com/version
https://api.example.com/v1/zoos https://api.example.com/v1/animals https://api.example.com/v1/employees
http://api.example.com 返回api文档
{"link": { "rel": "collection https://www.example.com/zoos", "href": "https://api.example.com/zoos", "title": "List of zoos", "type": "application/vnd.yourformat+json" }}
尽量避免多重url,应采用get参数传递的形式
http://api.example.com/v/auth/title/1 # error http://api.example.com/v/auth?title=1 # correct
过滤:
- ?limit=10:指定返回记录的数量
- ?offset=10:指定返回记录的开始位置。
- ?page=2&per_page=100:指定第几页,以及每页的记录数。
- ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
- ?animal_type_id=1:指定筛选条件
http协议请求中的8种方法:
OPTIONS获取服务器支持的HTTP请求方法;
HEAD跟get很像,但是不返回响应体信息,用于检查对象是否存在,并获取包含在响应消息头中的信息。
GET向特定的资源发出请求,得到资源。
POST向指定资源提交数据进行处理的请求,用于添加新的内容。
PUT向指定资源位置上传其最新的内容,用于修改某个内容。
DELETE请求服务器删除请求的URI所标识的资源,用于删除。
TRACE回馈服务器收到的请求,用于远程诊断服务器。
CONNECT用于代理进行传输,如使用ssl
详细http://www.ruanyifeng.com/blog/2014/05/restful_api.html