我眼中的RestFul API是怎样的
首先RestFul API是一种接口设计规范!!!
然而Restful有个很高大上的解释:表现层状态转移。what!这样谁看得懂
这样我先从Rest解释,解释的不好在评论上请加上你的理解,谢谢。
REST全称是 Resource Representational State Transfer ,意思就是资源在网络中以某种表现形式进行状态转移。表格形式如下:
列 | 解释 |
Resource | 资源。如 http://api.example.com/goods 中goods是该资源的获取处 |
Representational |
某种表现形式,如用JSON,XML,JPEG等 |
State Transfer | 状态变化。通过HTTP动词实现 |
有了上面的表格我举个例子来讲:
GET http://api.example.com/goods/1
以上是获取货物的例子,在Restful中所有资源均不以动词形式出现,所以goods是名词,而不是以往的 GET http://api.example.com/getGoods?id=1 X
但是一个名词怎么能代表获取资源了(获取资源可是一个动词啊),这时候HTTP动词 GET会将其转为 "获取" 的动作,而类似的HTTP动词如下:
HTTP请求 | 解释 |
GET /goods/1 | 返回指定id商品 |
POST /goods | 新增商品 |
PUT /goods/1 | 修改id为1商品 |
DELETE /goods/1 | 删除id为1商品 |
最后最后,上面是我们请求的格式,响应的时候需要带上我们看的懂的状态码如:
GET /goods/1 对应 200 OK
POST /goods 对应 201 CREATED
PUT /goods/1 对应 202 UPDATED
DELETE /goods/1 对应 204 NO CONTENT
注:要让我们看到返回状态码就知道干了什么~~~~~~~~~~~
总结一句话:看url就知道要什么、看http method就知道干什么、看http status code就知道结果如何