我眼中的RestFul API是怎样的

好久没写了,那我就写着restful先把。

首先RestFul API是一种接口设计规范!!!

然而Restful有个很高大上的解释:表现层状态转移。what!这样谁看得懂

这样我先从Rest解释,解释的不好在评论上请加上你的理解,谢谢。

REST全称是 Resource Representational State Transfer ,意思就是资源在网络中以某种表现形式进行状态转移。表格形式如下:

解释
Resource 资源。如 http://api.example.com/goods 中goods是该资源的获取
Representational
某种表现形式,如用JSON,XML,JPEG等
State Transfer 状态变化。通过HTTP动词实现

有了上面的表格我举个例子来讲:

GEThttp://api.example.com/goods/1

以上是获取货物的例子,在Restful中所有资源均不以动词形式出现,所以goods是名词,而不是以往的 GEThttp://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 对应 204NO CONTENT

注:要让我们看到返回状态码就知道干了什么~~~~~~~~~~~


总结一句话:看url就知道要什么、看http method就知道干什么、看http status code就知道结果如何


参考文章:https://www.zhihu.com/question/28557115 及 相关书籍片段

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...