當前位置:
首頁 > 最新 > 使用框架來創建RESTful的web服務

使用框架來創建RESTful的web服務

想要使用Express、restify或者其他框架來創建RESTful的web服務。使用正確的http方法、URLs和頭部信息來創建語義化的RESTful API。REST即為表徵性狀態傳輸,記住這個並不是特別有用,除非你想在面試中打動別人。web開發人員討論它時通常會和SOAP(簡單對象訪問協議)做對比,通常被視為是更有協作性和更嚴謹的一種創建web APIs的方式。事實上,REST API是相對嚴格的,但是關鍵的區別在於REST在基礎的層面上擁抱http——HTTP方法本身就具備了語義。如果你曾經做過基礎表單,應該對GET和POST請求很熟悉。在REST中,這些http動詞有著特定的含義。例如,POST用於創建資源,GET表示獲取資源。Node開發者通常使用JSON來創建API。在Node中,JSON是最便於生成和讀取的結構化數據格式,它同時在客戶端的JavaScript也能很好地工作。但是REST不意味著JSON——你可以自由地使用任意數據格式。一些客戶端和服務使用XML,我們甚至看到過使用CSV和電子表格格式,如Excel。

所期待的數據格式可以在請求的Accept頭部中指定。對於JSON,它應該是application/json,而XML,則是application/xml。還有其他有用的請求頭部——Accept-Version可以用於請求不同版本的API。這允許客戶端來使用自己支持的版本,同時你可以隨意地升級伺服器而不破壞向後兼容性——你總是可以在人們更新客戶端之前更快地更新伺服器程序。

Express基於http核心模塊提供了一個輕量的封裝層,但它不包括任何數據持久化,除了在內存中的sessions和cookies。你必須決定使用哪個資料庫和資料庫模塊。restify也是如此:它不會自動從http中映射數據來做離線存儲,你需要自己找個方式來處理。

Restify和Express十分相似。其中不同的是Express有構建web應用的特性,包括了渲染模塊。相反地,restify致力於構建REST APIs,這帶來了不同的需求。Restify可以讓使用語義化的http版本頭部信息來處理多個版本的APIs變得容易,並且擁有基於事件的API來觸發和監聽和http相關的事件和錯誤。它也支持節流,你可以控制多快來處理一次響應。

下圖展示了一個典型的RESTful API,允許*page*對象創建、讀取、更新和刪除。

要開始構建REST APIs,應該考慮你的對象是怎麼樣的。想像一下你在構建一個內容管理系統:可能有頁面、用戶和圖片。如果要添加一個按鈕來允許頁面在「發布」和「草稿」之間切換,可能需要一個REST API,它支持這樣的請求:PATCH/pages/:id,你可以把按鈕和一些客戶端的JavaScript綁定,或者是一個表單攜帶或數據post提交到/pages/:id。如果你面臨的是一個Express應用程序,只有PUT/pages/:id,那麼可能需要把現有的實現改為使用PATCH的代碼。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 行家匯 的精彩文章:

Browserify用於創建一個客戶端腳本
使用路由分離來把相關的路由拆分到各個模塊中
Node在shell中執行命令
Node的流和外部應用程序
Node執行外部程序時候出現的異常

TAG:行家匯 |

您可能感興趣

使用 Python 和 Scribus 創建一個 RGB 立方體
使用 VMware 創建 Linux 伺服器
使用Python和Gitlab創建一個票證系統
在c#中創建Windows服務
內容必須收費:前Oculus Story Studio的團隊創建新VR動畫工作室
使用 YAML 文件創建 Kubernetes Deployment
如何創建定製的 Ubuntu Live CD 鏡像
Arcona使用區塊鏈和AR創建內容,UNLTD聯手Unity打造VR體驗
Mentor 軟體 Capital Publisher 幫助 JAC 提高服務效率和文檔創建速度
Mentor 軟體Capital Publisher 幫助JAC 提高服務效率和文檔創建速度
ionic 創建 APP
未來!使用AR和Apple Music創建更加身臨其境的HomePod體驗
IBM CodePattern可創建自己的AI模型來識別對象
使用MapReduce創建直方圖
SIAEC聯合Stratasys在新加坡創建商用航空3D列印服務中心
谷歌AR應用Just a Line登陸iOS 可和好友一起創建塗鴉
如何使用 Emacs 創建 LaTeX 文檔
以色列Mantis Vision收購創企BrainVu,創建更好MR情感體驗
EA Motive工作室創建者Jade Raymond已離職
Fedora:Gnome創建桌面圖標,以Eclipse和IDEA為例