# 設計RESTful API
設計RESTful API是一個有意思的話題。下面是一些常用的RESTful設計原則:
## 12.1 REST關鍵目標
* 組件間交互的可伸縮性
* 接口的通用性
* 組件的獨立部署
* 通過中間組件來減少延遲、實施安全策略和封裝已有系統
## 12.2 判斷是否是 RESTful的約束條件
* 客戶端-服務器分離
* 無狀態
* 可緩存
* 多層系統
* 統一接口
* 隨需代碼(可選)
## 12.3 設計RESTful資源
## 12.4 設計RESTful URI
## 12.5 JSON

## 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
|