淺析Node在構(gòu)建超媒體API中的作用
無(wú)論是超媒體還是超文本,使用的傳輸協(xié)議都是HTTP,這意味著超媒體可以被所有的瀏覽器所接受。而描述超媒體的類(lèi)型我們使用MIME。MIME即Multipurpose Internet Mail Extensions,多用途互聯(lián)網(wǎng)郵件擴(kuò)展類(lèi)型,MIME是一個(gè)互聯(lián)網(wǎng)標(biāo)準(zhǔn),最早是應(yīng)用于電子郵件系統(tǒng)的,后來(lái)其定義逐步應(yīng)用到互聯(lián)網(wǎng)領(lǐng)域。用MIME指定媒體的類(lèi)型,那么客戶(hù)端瀏覽器就能清楚地知道,該如何處理這種類(lèi)型的媒體。
Node.js是基于谷歌V8 JavaScript引擎構(gòu)建的一種庫(kù),主要用于方便、快捷的搭建易伸縮的網(wǎng)絡(luò)應(yīng)用。Node.js是事件驅(qū)動(dòng)的,它充分利用JavaScript的閉包特性和事件處理機(jī)制,采用了非阻塞I/O模型,非常適合數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。Node.js實(shí)現(xiàn)了與Apache HTTP Server相似的功能,使之具備了構(gòu)建基于JavaScript的高并發(fā)Web應(yīng)用的能力。Node.js使得前后端開(kāi)發(fā)可以使用同一種編程語(yǔ)言——JavaScript。
REST Web服務(wù)可以說(shuō)是為HTTP協(xié)議量身定做的,在HTTP協(xié)議中使用URI來(lái)標(biāo)識(shí)唯一的網(wǎng)絡(luò)資源,用GET、POST、PUT、DELETE等動(dòng)詞來(lái)操作資源,REST Web服務(wù)顯然比SOAP Web服務(wù)更加簡(jiǎn)潔高效,因?yàn)樗恍枰~外的封裝協(xié)議和遠(yuǎn)程過(guò)程調(diào)用。
至于資源的表現(xiàn)形式,可以是HTML5的,也可以是XML數(shù)據(jù)格式、JSON數(shù)據(jù)格式,又或者是二進(jìn)制的Protobuf格式。使用哪一種數(shù)據(jù)格式,取決于項(xiàng)目的需求。
Node.js提供了HTTP操縱能力,在客戶(hù)端或服務(wù)器端都可以使用。Node.js最大的優(yōu)勢(shì)是它有龐大的第三方庫(kù),在RESTful Web Services方面,同樣有多個(gè)庫(kù)可以簡(jiǎn)化我們的開(kāi)發(fā)工作。比如:
1)node-restify
主頁(yè): https://github.com/mcavage/node-restify
restify是一個(gè)精簡(jiǎn)的、與Express庫(kù)相似的,用于構(gòu)建RESTful API的Node.js庫(kù)。
安裝:
$ npm install restify
2)node-restful
主頁(yè): https://github.com/baugarten/node-restful
node-restful是Express庫(kù)的封裝,很適合創(chuàng)建RESTful API。
安裝:
npm install node-restful
還有很多第三方庫(kù)就不一一列舉了。除此以外,我們還可以直接使用Node.js的核心庫(kù)構(gòu)建RESTful API,或者是使用Express庫(kù)構(gòu)建RESTful API。方法有很多種,都能達(dá)到目的。
超媒體的書(shū)很少,因此專(zhuān)門(mén)論述如何構(gòu)建超媒體API的書(shū)就更少了,超媒體也是網(wǎng)絡(luò)資源,同樣的可以用URI來(lái)定義,因此Node.js來(lái)實(shí)現(xiàn)超媒體的RESTful API是很容易的。
不得不說(shuō),《使用HTML5和Node構(gòu)建超媒體API》這本書(shū)翻譯的太生硬了,閱讀時(shí)感覺(jué)不暢快。但是,這本書(shū)本身還是很有價(jià)值的,因?yàn)閷?shí)現(xiàn)超媒體的RESTful API這種需求很常見(jiàn),可以說(shuō)是Web開(kāi)發(fā)者的必備技能之一。反復(fù)閱讀,揣摩其內(nèi)涵,是我對(duì)此書(shū)讀者的一點(diǎn)小小建議。
- node.js中使用q.js實(shí)現(xiàn)api的promise化
- 實(shí)現(xiàn)一個(gè)完整的Node.js RESTful API的示例
- 詳解本地Node.js服務(wù)器作為api服務(wù)器的解決辦法
- node.js實(shí)現(xiàn)微信JS-API封裝接口的示例代碼
- 淺析Node.js 中 Stream API 的使用
- Node.js原生api搭建web服務(wù)器的方法步驟
- 30分鐘用Node.js構(gòu)建一個(gè)API服務(wù)器的步驟詳解
- 零基礎(chǔ)之Node.js搭建API服務(wù)器的詳解
- NodeJS基礎(chǔ)API搭建服務(wù)器詳細(xì)過(guò)程記錄
- NodeJS仿WebApi路由示例
- 深入分析node.js的異步API和其局限性
- Node.js API詳解之 tty功能與用法實(shí)例分析
相關(guān)文章
Node.js數(shù)據(jù)流Stream之Readable流和Writable流用法
這篇文章介紹了Node.js數(shù)據(jù)流Stream之Readable流和Writable流的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07npm install --save 、--save-dev 、-D、-S&nb
這篇文章主要介紹了npm install --save 、--save-dev 、-D、-S 的區(qū)別與NODE_ENV的配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08基于node搭建服務(wù)器,寫(xiě)接口,調(diào)接口,跨域的實(shí)例
今天小編就為大家分享一篇基于node搭建服務(wù)器,寫(xiě)接口,調(diào)接口,跨域的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Win7系統(tǒng)中如何安裝高版本的NodeJS(親測(cè)有效!)
Node.js是基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境,能夠使JavaScript在服務(wù)器端運(yùn)行,這篇文章主要給大家介紹了關(guān)于Win7系統(tǒng)中如何安裝高版本的NodeJS的相關(guān)資料,需要的朋友可以參考下2023-12-12詳解node登錄接口之密碼錯(cuò)誤限制次數(shù)(含代碼)
這篇文章主要介紹了nodejs登錄接口之密碼錯(cuò)誤限制次數(shù)(含代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi)示例
這篇文章主要介紹了nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi),涉及nodejs操作redis進(jìn)行緩存設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2018-02-02node.js適合游戲后臺(tái)開(kāi)發(fā)嗎?
這篇文章主要介紹了node.js適合游戲后臺(tái)開(kāi)發(fā)嗎?node.js是不是能代替C++開(kāi)發(fā)游戲后臺(tái)呢?看完本文我想你會(huì)有一定的了解了,需要的朋友可以參考下2014-09-09