题目
什么是REST原则,请解释RESTful架构,以及其设计思想?
解答
REST,全称为Representation State Transfer,是一种互联网软件的架构原则。凡是满足REST原则的,我们都称它为RESTful架构。
对RESTful架构的理解,有以下几点:
- 资源,网络上的一个实体,或者是一个具体的信息。通常使用一个URI来表示一种资源。
- Representation,可理解为资源的表现层,资源的具体表现形式。在http请求的头信息Accept和Content-Type字段指定具体表现形式,如application/json
- State Transfer,可理解为状态转移,客户端要对服务器资源进行操作,必须通过某种手段,让服务器上的资源发生状态变化,这就是所谓的state Transfer了。通常客户端通过四个HTTP动词(GET、PUT、POST、DELETE),对服务端资源进行操作,实现State Transfer。
理解上述几点,基本就对RESTful架构有了大概的了解了。
RESTful API设计思想关键点如下:
- 一定要使用https,不要http重定向
- 标明专属api域名或者子目录,如https://www.huangzijian.me/api/
- 表明版本号,如https://www.huangzijian.me/api/v1/
- 因为每一个URI表示的是一个资源,故路径上应该采用名词来表示,而不要用动词。由于通常情况下均表示一类资源,因此要采用复数,如https://www.huangzijian.me/api/v1/exams
- 采用HTTP动词的GET、POST、PUT、DELETE分表表示资源的获取、新增、更新和删除。
- 注意服务器向客户端返回的状态码及其提示信息。
- 建议传输的数据格式采用JSON。
参考资料
1.RESTful API 设计指南(http://www.ruanyifeng.com/blog/2014/05/restful_api.html)
2.理解RESTful架构(http://www.ruanyifeng.com/blog/2011/09/restful)