RESTful风格与RESTful Api
REST(representational state transfer)(表述性状态转移),词汇解析:
1、representational 表述性:指资源以用各种形式来表述,包括 XML、JSON 甚至 HTML——最适合资源使用者的任意形式;
2、state 状态:资源有状态
3、transfer 转移:资源从一个应用转移到另一个应用
什么是资源?
所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息,可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。
资源总要通过某种载体反应其内容,文本可以用txt格式表现,也可以用HTML格式、XML格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现;
JSON是现在最常用的资源表示格式。
统一接口
数据的元操作,即CRUD(create, read, update和delete),分别对应于HTTP方法:GET,POST,PUT,DELETE,
这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。
URI
可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。
无状态
(这个有点难以理解,可理解为能通过URI直接获取资源,而不用处于已登录等各种状态之中)
所谓无状态的,即所有的资源都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。
有状态和无状态的区别,举个简单的例子说明一下:
查询员工的工资,如工资需要登录后才能获取工资,则这种情况是有状态
的;
如果输入一个url即可得到指定员工的工资,则这种情况是无状态
的。
典型:HTTP
--------------------------------------------------------------------------
RESTful Api
工作中常见到各种api,很多都被称为RESTful风格,接下来说一下什么是RESTful Api。
RESTful核心思想之一就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET /articles
这个命令,GET
是动词,/articles
是宾语。
动词通常就是五种 HTTP 方法,对应 CRUD 操作。
关于RESTful Api的详细规范,可参考:
http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html