每天一道Java题[7]

时间:2021-02-10 17:24:14

题目

什么是REST原则,请解释RESTful架构,以及其设计思想?

解答

REST,全称为Representation State Transfer,是一种互联网软件的架构原则。凡是满足REST原则的,我们都称它为RESTful架构。

对RESTful架构的理解,有以下几点:

  1. 资源,网络上的一个实体,或者是一个具体的信息。通常使用一个URI来表示一种资源。
  2. Representation,可理解为资源的表现层,资源的具体表现形式。在http请求的头信息Accept和Content-Type字段指定具体表现形式,如application/json
  3. State Transfer,可理解为状态转移,客户端要对服务器资源进行操作,必须通过某种手段,让服务器上的资源发生状态变化,这就是所谓的state Transfer了。通常客户端通过四个HTTP动词(GET、PUT、POST、DELETE),对服务端资源进行操作,实现State Transfer。

理解上述几点,基本就对RESTful架构有了大概的了解了。

RESTful API设计思想关键点如下:

  1. 一定要使用https,不要http重定向
  2. 标明专属api域名或者子目录,如https://www.huangzijian.me/api/
  3. 表明版本号,如https://www.huangzijian.me/api/v1/
  4. 因为每一个URI表示的是一个资源,故路径上应该采用名词来表示,而不要用动词。由于通常情况下均表示一类资源,因此要采用复数,如https://www.huangzijian.me/api/v1/exams
  5. 采用HTTP动词的GET、POST、PUT、DELETE分表表示资源的获取、新增、更新和删除。
  6. 注意服务器向客户端返回的状态码及其提示信息。
  7. 建议传输的数据格式采用JSON。

参考资料

1.RESTful API 设计指南(http://www.ruanyifeng.com/blog/2014/05/restful_api.html)

2.理解RESTful架构(http://www.ruanyifeng.com/blog/2011/09/restful)