# 设计RESTful API
设计RESTful API是一个有意思的话题。下面是一些常用的RESTful设计原则:
## 12.1 REST关键目标
* 组件间交互的可伸缩性
* 接口的通用性
* 组件的独立部署
* 通过中间组件来减少延迟、实施安全策略和封装已有系统
## 12.2 判断是否是 RESTful的约束条件
* 客户端-服务器分离
* 无状态
* 可缓存
* 多层系统
* 统一接口
* 随需代码(可选)
## 12.3 设计RESTful资源
## 12.4 设计RESTful URI
## 12.5 JSON
![图像说明文字](https://box.kancloud.cn/2015-08-25_55dbfaede281e.jpg)
## 12.6 REST
> REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态,所谓表征状态转移。
因为我们需要的是一个Machine到Machine沟通的平台,需要设计一个API。而设计一个API来说,RESTful是很不错的一种选择,也是主流的选择。而设计一个RESTful服务,的首要步骤便是设计资源模型。
### 12.6.1 资源
互联网上的一切信息都可以看作是一种资源。
|
HTTP Method
|
Operation Performed
|
| --- | --- |
|
GET
|
Get a resource (Read a resource)
|
|
POST
|
Create a resource
|
|
PUT
|
Update a resource
|
|
DELETE
|
Delete Resource
|