Feathers 是什么?
Feathers 是一个为现代化应用而设计的网络架构。它具有面向服务,实时性,简单抽象的特点。在设计之初,它就把实时交流放在重要的位置,而不是后来添加扩展。
现代化应用
在设计现代化应用时,有很多要考虑的东西。比如速度(speed)、可维护性(maintainability)、灵活性(flexibility)、接入性(accessibility)、可扩展性(scalability)等等。
Feathers尝试减少这些设计上的痛苦。它借鉴了最好的实践经验,实现了“一连串而又简单可交换的”包裹服务。更厉害的是,Feathers提供了大量你需要的组件用来创建现代化web应用或API。这些都是完全可选择的,因此可以挑选你想包含或去除的组件。
面向服务
services 是每个Feathers应用的核心。他们是微小、面向数据的对象,这些对象可以针对资源执行增删CRUD操作。资源可以存储在数据库、另一个服务或者完全不同的其他地方。
核心功能中的实时
大部分实时web架构只是在向客户端推送数据时实现了实时性。通过REST接口和服务交互,然后通过通过websocket接受事件,更糟的是,客户端要不断的轮训变化(而且这还不是真正意义上的实时)。
Feathers 在这方面有所不同。它允许你通过websocket发送和接收数据,把实时放在重要的位置,让你的应用难以想象的优雅轻快。
整个Feathers生态系统都支持实时通信,后者是一等公民而不是黑客式的功能附加。甚至可以放弃REST,而简单的使用websocket来通信。这对于IoT设备或者其他方面,是非常理想的实时方案。
安装部署
1.安装NodeJS
2.安装Feathers CLI
$ npm install -g feathers-cli
对的,就这么轻快便捷。
创建一个应用
1.创建文档目录
$ mkdir feathers-chat && cd feathers-chat/
2.生成应用
$ feathers generate
3.生成服务
$ feathers generate service
4.开启服务
$ npm start
5.浏览器访问
localhost:3030/messages
6.创建新的消息
$ curl 'http://localhost:3030/messages/' -H 'Content-Type: application/json' --data-binary '{ "text": "Hello Feathers!" }'