RESTful API:面向资源编程。
在此之前我们需要理一理背景知识。
其实,凡是网络应用程序,最基本的结构中至少包含两个端。即使服务端和客服端。
传统的请求,响应。有表单/没表单的请求处理,服务端接收处理返回,客服端处理渲染。(目前这种方式,重服务端,基本已经逐渐淘汰)-----------这是更加偏向BS结构,但是效率很高。
目前流行的是,减轻服务端的负担。
现代流行的开发方式:(有点偏向cs结构的,有点纯数据交互的感觉)
★这里需要特意说明下,请求页面得到页面,在通过页面上的URI去多次请求得到详细具体的数据。不是一次性全部返回。
★这种开发模式存在的问题:反转了开发模式。需要后端工程师,完成提供数据的(数据接口)API,才能开始些。不符合前后台同时开发的原则。所以这就需要优先输出API给前端是开发人员,显然这种方式的开发效率是底下的,这非常依赖API的开发进度。
前后端开发分离方案
背景此前已经解释了,那么怎么来避免这样的低效率,能不能不等接口,前段就直接干,就完事了。
当然,那就是Mock模拟方式,是指所有的客服端模拟数据的手段;
Mock:①事先约定好接口的标准;②后端开始开发接口;③前端通过假数据的方式模拟一个后端接口;
举例:
①users.json文件方式,里面的内容为
[
{”name“:zy,"age":12};
{”name“:zy,"age":12};
{”name“:zy,"age":12};
]
//json文件的方式是最简单的mock行为(但是缺点恨明显:只能读不能写等)
<script >
//请求后端的接口,但是真实的 /users 还没有开发完成。
//此时我们用假的数据接口 替换
$.get("/user.json", function(res){
console.log(res);
})
</script>
②自己写一个简单的API接口。
③利用第三方工具:mock.js(无法持久化数据)或json-server(推荐使用)
第三方工具的应用:
①mock.js导入(作用:生成随机数据,拦截ajax)
使用方法:①全局对象上多了一个Mock对象。最常用的就是mock方法。
<script >
Mock.mock('/users','get',{
hello:"mock.js"
})
</script >
②json-server(推荐使用):get a full fake rest API with zero coding in less then 30 seconds(seriously);(可读可写)
那么怎么去表示一个资源:地址即使资源(resources)。(这里补充一点,localhost前的东西不必关注。)
对资源的操作无非是增删改查。
①建一个 do.json文件,
②通过json-server中的命令 $ json-server ==watch do.json,交由json-server管理
③现在你可以去访问http://localhost:3000/posts/1;你就会得到你的do.json里的数据。
json-server的基本特性
标准的RESTful API
支持过滤
支持分页
支持排序
支持全文检索
支持关系
支持数据分割
支持操作符
支持jsonp
支持CORS等