本文將介紹一種更為通用的封裝方案,該方案中通過組合使用 dojo. Stateful、dojo.xhr、dojo. Deferred 等常用類及方法,使開發者用一種物件導向的、簡單透明的方式,實現用戶端與 REST 風格的 API 之間的同步或者非同步交互。
本文將使用 Dojo 1.7 並遵循 AMD 的規範,設計並實現與 REST API 交互的 Web 前端HTTP://www.aliyun.com/zixun/aggregation/14208.html">資料模型。
準備工作
安裝 Grails
在 Grails 官方網站下載 2.0.1 920.html">Release 版
準備 REST API
Grails 是一個適合快速開發的 web 開源框架,能很快的實現所需 REST API,實現代碼見本文附件:
表 1.REST API 及其支援 HTTP 方法
API GET POST PUT DELETE /shape √ /circle √ √ /circle/${id} √ √ √ /square √ √ /square/${id} √ √ √
使用 Dojo
本文將使用基於 CDN 的 Dojo1.7.2,受網路條件限制的開發者可以在 Dojo 官方網站下載 Dojo1.7.2 Release 版。
定義 Web 端資料模型及使用
和麵向物件程式設計相關的教程中經常使用幾何形狀,本文也不例外。 下面是基類 Shape、子類 Circle 和 Square 的 UML 圖:
圖 1.UML 物件關係圖
一般來說,這種設計思想在後端領域是司空見慣的事情,但這種思想同樣也適用于前端,尤其是資料物件較多的 OPOA(One Page One Application)型專案。 基於 REST API 特點,就可以把和後端 API 交互的 AJAX 代碼都封裝在 Resource 類的方法裡,而子類要做的僅僅是聲明其資源名稱。 即使後端 API 不是 REST 風格,也可以在子類重寫父類方法,滿足各種需求。 這種資料封裝方式,能通過多種主流前端框架實現,一旦採用,能極大簡化前端工作者的工作量。 之所以採用 Dojo1.7 以上版本,其在模組載入、類機制和非同步程式設計方面有獨特優勢,會在後面繼續闡述。