REST和RESTful API学习笔记

用了两年的RESTful接口,能意会RESTful是什么,但是很难给别人讲清楚。
前两天在知乎上看到了“怎样用通俗的语言解释REST,以及RESTful?”覃超的回答,个人觉得写得很易于理解,结合阮一峰大神的《理解RESTful架构》
记录一下学习心得。

REST和RESTful API区别

  • REST:REpresentational State Transfer,直接翻译为,表现层状态转移,这里其实省略了主语资源(Resources),全称应该为

Resource Representational State Transfer,通俗来讲即资源在网络中以某种表现形式进行状态转移

REST可以理解为client和server间的一种交互方式,即client发出http请求,server端的资源发生状态转移,比如更新、删除等

  • RESTful API,可以理解为server端提供的具有REST风格的接口

更详细一点的描述

@Ivony老师的一句话概括很精辟:
URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

比如:

URL Method操作 接口含义
/v1/test/articles 表示某人的文章 GET 获取资源 获取某人的文章
/v1/test/articles 表示某人的文章 POST 新建资源(也可用于更新资源) 创建一篇文章
/v1/test/articles 表示某人的文章 PUT 更新资源 修改文章
/v1/test/articles/articleid 表示某人某篇文章 DELETE 更新资源 删除某篇文章

URL:/v1/test/articles 表示某人的文章,类似的/v1/test/friends 表示某人的朋友信息
操作:GET、POST、PUT、DELETE用于操作相应资源

补充,RESTful API常用的另一个特征

用 HTTP Status Code传递Server的状态信息。比如最常用的 200 表示成功,500 表示Server内部错误等


常见的不规范设计

  • URL中含有操作动词
    比如删除某篇文章,URL如果涉及为/v1/test/deletearticles/articleid,包含有动词delete,不符合规范

Reference
https://www.zhihu.com/question/28557115
http://www.ruanyifeng.com/blog/2011/09/restful.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容