一、REST
REST(Representational State Transfer,翻译为“表现层状态转化”)是所有Web应用开发都应该遵守的架构设计指导原则。
面向资源是REST最明显的特征,对于同一个资源的一组不同操作。资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的。
REST要求,必须通过统一的接口来对资源执行各种操作,对于每个资源只能执行一组有限的操作,7个HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS。
二、RESTful API
即符合REST设计标准的API。
REST架构设计,遵循的各项标准和准则,就是HTTP协议的表现,换句话说,HTTP协议就是属于REST架构的设计模式,比如无状态,请求-响应。
三、RESTful API设计指南
1、协议
API与用户的通信协议,总是使用HTTPs协议;
2、域名
应该尽量将API部署在专用域名之下;
https://api.example.com
如果API很简单,不会有进一步扩展,可以考虑放在主域名下;
https://example.org/api/
3、版本(Versioning)
应该将API的版本号放入URL;
https://api.example.com/v1
另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观;Github采用这种做法;
4、路径(Endpoint)
路径又称终点,表示API的具体网址;
在RESTful架构中,每个网址代表一种资源(resourse),所以网址中不能有动词,只能有名词,而且所有的名词往往与数据库的表格名对应;一般来说,数据库的表都是同种记录的"集合(collection)