json-server 的基本使用
我们知道 json-server 是一个 npm 管理的包,可以提供前端提供mock的功能。,安装方法及生成数据在前面已经说过,在次不多做解释,安装好之后,它会提供一个 json-server 的全局命令,基于该命令,我们就可以快速的mock数据。
但是我们发现 json-server 的接口的使用方式和其他的一些接口的使用方式稍微有一些不一样。
我们常见的接口:都是 get 或者 post 请求一个 url 地址即可
json-server 的接口:除了常见的 get 和 post 请求,还提供了 put ,delete 等请求方式,通过 请求方式
+ 请求 url 地址
, 我们可以对数据进行操作(也就相当于是对数据操作的一个方法)
json-server 对数据的操作
之前我们说过 json-server 接口的使用完全等同于 jsonplaceholder,我们用 get 请求方式可以对数据进行 查询,分页,排序等操作,这个在 jsonplaceholder 已经证明过了,除了get 方式,我们还可以用 post 请求方式对数据进行增加,用 delete 请求方式对数据进行删除,用 put 方式对数据进行更新,这个就像是用 请求方式
+ 请求地址
对数据进行curd 操作,就像是一个方法一样
注意:向服务器发送请求的话,我们浏览器只有 get 和 post,如果要用其他请求方式必须使用第三方的接口调试工具(这里我使用的是 postman)
get 请求方式可以对数据进行 查询,分页,排序等操作在 jsonplaceholder 已经证明过,现在我们来看一下其他的请求方式及操作( json-server 生成的数据,接口地址:http://localhost:3000/users)
get 请求获得数据
post + 地址 进行增加数据
delete + 地址 进行删除数据
以上证明了用 http请求方式
+ 请求url地址
的方法整的可以操作我们的数据,所以我们把对于这种使用 http请求方式
+ 请求url地址
形成的 api ,我们一般叫做 RESTFul 风格的api,RESTFul 风格的api底层遵循的是 REST 架构这种协议。
RESTFul api
要知道什么是 RSETful api,首先要知道什么是 REST
什么是 REST
REST,表示性状态转移(representation state transfer)。简单来说,就是用URI表示资源(我们获取数据的接口),用HTTP方法(GET, POST, PUT, DELETE)表征对这些资源的操作。也就是我们通过用 HTTP方法 + 请求路径 对我们数据进行一系列的操作
什么是 RSETful api
RSETful api: 使用的 RESFTFul 风格写的api
现在有很多的移动设备,多端应用特别的多,服务器一般都是提供一套数据,由前端去请求,但是有些页面之间所需要的数据是不一样的,如果不用 RSETful api 的话,我们就要定义多个 请求路径 去获取处理后的数据,比如说我们的 详情页和增加用户
请求详情页数据:http://localhost.com/user/1 + post/get
用户的增加:http://localhost.com/user/add + get
可以看到,它们的请求地址是不一样的,由我们自己定义,需要为每个平台的数据请求定义相应的返回格式,如果使用 RSETful api 的话
删除:delete + http://localhost.com/1
更新:put + http://localhost.com/1 + 更新的数据
它们的 请求地址都是一样的,服务端就只需要定义一个统一的响应接口就好了
个人理解它和我们普通的 请求接口一样,也是一个接口,只不过他是结合了 请求方式 的一个接口,可以对数据进行操作而已
什么是资源路由
在写这种 RESTFul api 的时候,我们需要遵循 REST 架构,(REST 架构:规定使用http的方式去描述对资源的操作的行为,使用的url地址去标识一个资源的详细的位置)
在上面也说了用URI表示资源,这个 url 就叫做资源路由。
基准地址: http://api.xxx.com/api/v1
完整的 api 地址: 基准地址 + 模块地址 + 具体的操作
如:
用户模块生成的完整的url地址 (resources 资源路由)
用户列表:http://api.xxx.com/api/v1/users/
用户的详情:http://api.xxx.com/api/v1/users/1
用户的删除:delete + http://api.xxx.com/api/v1/users/1
总结:仅是个人理解,我认为 RSETful api 其实就是利用请求方式 + 地址 + 条件 来获取我们需要的数据