FeathersJS官方文档阅读笔记(三)

Feathers哲学

它并不是又一个Javascript框架,也不是一个重复被造的轮子。而是使用service和cross cutting concerns来构建web应用的尝试。可扩展而又面向服务是它的一大特点,结果会更灵活。它始终坚信,UI、数据或商业逻辑是web应用或移动app的核心,而架构可以帮助实现剩余的工作。

服务的概念

服务层可以帮助解耦应用的接入和呈现,也方便测试。可以为HTTP REST和websocket提供相同的API。

统一接口

好比如REST的一个关键约束,命名约定可以见词知意。对应于REST,有以下方法:GET, POST, PUT, PATCH and DELETE。而服务也有统一的接口。

const myService = {

// GET /path

find(params, callback) {},

// GET /path/

get(id, params, callback) {},

// POST /path

create(data, params, callback) {},

// PUT /path/

update(id, data, params, callback) {},

// PATCH /path/

patch(id, data, params, callback) {},

// DELETE /path/

remove(id, params, callback) {}

}

这个接口让”hook”到方法执行中以及返回后发射事件更简单,来提供实时功能。

Hooks

遵循小的模块做一件事好于大的复杂模块。然后,可以创建before和after hooks 来把各模块链起来。

站在巨人之肩

Express 4 Feathers继承了它。

Vorpal Feathers的CLI工具的生成器继承了它。

Socket.io or Primus Feathers封装了两位巨人,来实现web socket传输。

mongoose, sequelize, knex, or waterline 服务适配器的ORM的实现。

npm 仍然是包管理工具

passport 完成了很多feathers-authentication的工作。

下面展示了利用Feathers实现的利器,业绩Feathers的生态系统。

应用方面

Feathers Chat

Feathers React Native Chat

起步中的项目

Feathers + Apollo

Feathers + React + Mobx

Feathers + React + Webpack

社区插件

。。。

认证

Feathers-accounts

Feathers-service-verify-reset

通信

Feather-batch

数据库

省略若干字

文档

Feathers-swagger

多实例

Feathers-cluster

Feathers-sync

Email

Feathers-mailer

Feathers-mailgun

Feathers-sendgrid

回应

Feathers-action

Feathers-action-creators

Feathers-action-reducer

Feathers-action-types

Feathers-react-redux

Feathers-reduxify-services

测试

Feathers-tests-fake-app-users

转化

Feathers-populate-hook

Feathers-transform-hook

Feathers-virtual-attribute-hook

工具

Feathers-hooks-common

Feathers-hooks-utils

有效性

Feathers-hooks-validate-joi

Feathers-hooks-validatiob-jsonschema

Feathers-tcomb

Feathers-validate-hook

Feathers-validator

视图层

donees-Feathers

Feathers-done-ssr

Feathers-mithril

Feathers-reactive

ng-Feathers

vue-syncers-Feathers

你可能感兴趣的:(FeathersJS官方文档阅读笔记(三))