無論是超媒體還是超文本,使用的傳輸協議都是HTTP,這意味著超媒體可以被所有的浏覽器所接受。而描述超媒體的類型我們使用MIME。MIME即Multipurpose Internet Mail Extensions,多用途互聯網郵件擴展類型,MIME是一個互聯網標准,最早是應用於電子郵件系統的,後來其定義逐步應用到互聯網領域。用MIME指定媒體的類型,那麼客戶端浏覽器就能清楚地知道,該如何處理這種類型的媒體。
Node.js是基於谷歌V8 JavaScript引擎構建的一種庫,主要用於方便、快捷的搭建易伸縮的網絡應用。Node.js是事件驅動的,它充分利用JavaScript的閉包特性和事件處理機制,采用了非阻塞I/O模型,非常適合數據密集型的實時應用。Node.js實現了與Apache HTTP Server相似的功能,使之具備了構建基於JavaScript的高並發Web應用的能力。Node.js使得前後端開發可以使用同一種編程語言——JavaScript。
REST Web服務可以說是為HTTP協議量身定做的,在HTTP協議中使用URI來標識唯一的網絡資源,用GET、POST、PUT、DELETE等動詞來操作資源,REST Web服務顯然比SOAP Web服務更加簡潔高效,因為它不需要額外的封裝協議和遠程過程調用。
至於資源的表現形式,可以是HTML5的,也可以是XML數據格式、JSON數據格式,又或者是二進制的Protobuf格式。使用哪一種數據格式,取決於項目的需求。
Node.js提供了HTTP操縱能力,在客戶端或服務器端都可以使用。Node.js最大的優勢是它有龐大的第三方庫,在RESTful Web Services方面,同樣有多個庫可以簡化我們的開發工作。比如:
1)node-restify
主頁: https://github.com/mcavage/node-restify
restify是一個精簡的、與Express庫相似的,用於構建RESTful API的Node.js庫。
安裝:
$ npm install restify
2)node-restful
主頁: https://github.com/baugarten/node-restful
node-restful是Express庫的封裝,很適合創建RESTful API。
安裝:
npm install node-restful
還有很多第三方庫就不一一列舉了。除此以外,我們還可以直接使用Node.js的核心庫構建RESTful API,或者是使用Express庫構建RESTful API。方法有很多種,都能達到目的。
超媒體的書很少,因此專門論述如何構建超媒體API的書就更少了,超媒體也是網絡資源,同樣的可以用URI來定義,因此Node.js來實現超媒體的RESTful API是很容易的。
不得不說,《使用HTML5和Node構建超媒體API》這本書翻譯的太生硬了,閱讀時感覺不暢快。但是,這本書本身還是很有價值的,因為實現超媒體的RESTful API這種需求很常見,可以說是Web開發者的必備技能之一。反復閱讀,揣摩其內涵,是我對此書讀者的一點小小建議。