REST 定義的多樣性與光譜觀點
業界對 REST 的定義眾說紛紜,有人主張嚴格規範,有人採寬鬆詮釋。筆者傾向認為 REST 架構存在於一個連續光譜上,而非二元對立。

REST 背後的核心理念
- 越簡單越好
- Web 极其成功,值得借鏡
- Web 极其簡單,易於理解與實作
- Web 設計遵循可靠的指導原則,歷經長時間驗證
- Web 服務應以 Web 的方式設計
影響 RESTful 程度的關鍵特徵
雖無單一嚴格定義,但以下特徵決定服務落在光譜的哪個位置:
1. HTTP 方法的合理使用
- HI-REST:嚴格對應——
GET 查詢、DELETE 刪除、PUT 新增/更新、POST 附加。
- LO-REST:可能僅用
POST 處理所有寫入操作(新增、更新、刪除、附加)。
2. 資料表現形式的選擇
- HI-REST:偏好標準格式(如 JSON、XML、Atom)。
- LO-REST:接受 POX (Plain Old XML) 等非標準格式。
3. URI 設計風格
- HI-REST:描述性 URI,避免查詢字串(如
/products/123)。
- LO-REST:常使用查詢字串(如
/GetProduct?id=123)。
4. 其他進階特徵
- 承載中包含相關資源連結
- 使用適當的 HTTP 狀態碼
WCF 的定位:全光譜支援
從 WCF 角度看,特定定義並不關鍵。WCF 同時支援光譜兩端:下一篇將實作 LO-REST(支援 AJAX 的服務),後續文章再示範 HI-REST 實作。若上述概念尚感模糊,請直接參考後續具體範例。