Feathers 是什么?
Feathers 是一個為現(xiàn)代化應用而設計的網(wǎng)絡架構。它具有面向服務,實時性,簡單抽象的特點。在設計之初,它就把實時交流放在重要的位置,而不是后來添加擴展。
現(xiàn)代化應用
在設計現(xiàn)代化應用時,有很多要考慮的東西。比如速度(speed)、可維護性(maintainability)、靈活性(flexibility)、接入性(accessibility)、可擴展性(scalability)等等。
Feathers嘗試減少這些設計上的痛苦。它借鑒了最好的實踐經(jīng)驗,實現(xiàn)了“一連串而又簡單可交換的”包裹服務。更厲害的是,F(xiàn)eathers提供了大量你需要的組件用來創(chuàng)建現(xiàn)代化web應用或API。這些都是完全可選擇的,因此可以挑選你想包含或去除的組件。
面向服務
services 是每個Feathers應用的核心。他們是微小、面向數(shù)據(jù)的對象,這些對象可以針對資源執(zhí)行增刪CRUD操作。資源可以存儲在數(shù)據(jù)庫、另一個服務或者完全不同的其他地方。
核心功能中的實時
大部分實時web架構只是在向客戶端推送數(shù)據(jù)時實現(xiàn)了實時性。通過REST接口和服務交互,然后通過通過websocket接受事件,更糟的是,客戶端要不斷的輪訓變化(而且這還不是真正意義上的實時)。
Feathers 在這方面有所不同。它允許你通過websocket發(fā)送和接收數(shù)據(jù),把實時放在重要的位置,讓你的應用難以想象的優(yōu)雅輕快。
整個Feathers生態(tài)系統(tǒng)都支持實時通信,后者是一等公民而不是黑客式的功能附加。甚至可以放棄REST,而簡單的使用websocket來通信。這對于IoT設備或者其他方面,是非常理想的實時方案。
安裝部署
1.安裝NodeJS
2.安裝Feathers CLI
$ npm install -g feathers-cli
對的,就這么輕快便捷。
創(chuàng)建一個應用
1.創(chuàng)建文檔目錄
$ mkdir feathers-chat && cd feathers-chat/
2.生成應用
$ feathers generate
3.生成服務
$ feathers generate service
4.開啟服務
$ npm start
5.瀏覽器訪問
localhost:3030/messages
6.創(chuàng)建新的消息
$ curl 'http://localhost:3030/messages/' -H 'Content-Type: application/json' --data-binary '{ "text": "Hello Feathers!" }'