1. 為所有“事物”定義可?標識的ID.
- 使用URI 標識出所有值得標識的事物.
- 例如一個流程, 流程, 或步驟.
- 可能會導致創建出更多的持久化實體.
2. 將所有事物鏈接在一起
- 使用鏈接指引可被標識的事物(資源).
- 例如, 在post 操作的response 中, 使用location 指定新創建資源的地址, 讓用戶可以接著訪問剛創建好的資源.
3. 使用HTTP 標準方法
- 所有資源都支持同樣的接口(操作集合).
- ?從而有利于客戶端與資源相互協作.
4. 資源多重表述
- 客戶端如何知道該怎樣處理檢索到得數據.
- HTTP 允許數據處理和操作調用之間的分離.
- 如果客戶端(服務端)知道如何處理一種特定的數據格式,那么就可以與所有提供這種表述格式的資源交互.
- 資源如果提供HTML/XML表述方式,那么可以被所有使用WEB的人獲知.
- 針對不同的需求提供資源的多重表述.
5. 無狀態通信
- 狀態要么放在資源中,要么保存在客戶端.
- 除了單次請求之外,服務器端不能保持任何與其通信的客戶端的通信狀態.
- 保持服務器的可伸縮性.
- 使服務器的變化對客戶端不可見.
6. 從資源的角度思考
- 以API 消費者的視角, 將資源命名為有意義的名詞.
- 不要在API 上泄漏實現的細節.
- 首先確定資源, 然后再用HTTP 方法來實現功能.