插件开发

快速开始

目的

所有功能都可以以插件的形式扩展,常见的场景用插件组合的方式但可完成基础搭建。通过扩展插件的形式降低了模块之间的耦合度,提高了复用率

扩展能力

模块分布:服务端、客户端

  • 服务端
    数据表和字段
    资源和操作
    中间件
    事件
    自定义命令行
    国际化

  • 客户端
    路由管理和插件配置页
    样式和主题
    Provider 和上下文
    UI Schema
    国际化

服务端

一、生命周期
image.png
二、数据表和字段
2.1 核心概念
  • Collection「数据表」
  • Collection Field 字段
  • Field Type 字段类型
    Field Type 包括 Attribute Type 和 Association Type 两类
  • Field Component
  • Field Interface
    Basic、Choices、Media、Date & Time、Relation、Advanced、System info
2.2 Collection 协议

Collection 是 NocoBase 的中枢,是一种用于描述数据结构(数据表和字段)的协议


image.png

Collection 协议主要包括 CollectionOptions 和 FieldOptions 两部分

  • FieldOptions
    通用的字段参数
interface FieldOptions {
  name: string;
  type: string;
  hidden?: boolean;
  index?: boolean;
  interface?: string;
  uiSchema?: ISchema;
}
2.3如何配置数据表?

有三种方式配置数据表


image.png
  • 通过界面配置数据表
    业务数据一般建议使用界面配置,NocoBase 平台提供了常规的表格界面和图形化配置界面
  • 在插件代码里定义
  • 通过 REST API 管理数据表
2.4 关系字段配置
2.5 字段扩展
2.6 Collection 模板
三、资源与操作

与 RESTful 中资源的概念相同,是系统中对外提供的可操作的对象,可以是数据表、文件、和其他自定义的对象。

1、 数据表自动映射为资源
2、 内置默认的资源操作
3、 对资源自定义操作
4、 操作的参数合并顺序与策略

  • 简单数据资源的默认操作:
  • list:查询数据表中的数据列表
  • get:查询数据表中的单条数据
  • create:对数据表创建单条数据
  • update:对数据表更新单条数据
  • destroy:对数据表删除单条数据
  • 关系资源除了简单的 CRUD 操作,还有默认的关系操作:
  • add:对数据添加关联
  • remove:对数据移除关联
  • set:对数据设置关联
  • toggle:对数据添加或移除关联
  • 自定义 Action

  • Action 参数(参数主要有三个来源)
    1、Action 定义时默认参数
    2、客户端请求携带
    3、其他中间件预处理

  • 自定义资源
    数据型的资源还分为独立资源和关系资源:
    1、独立资源:<collection>
    2、关系资源:<collection>.<association>

三、客户端

一、生命周期
image.png
  • 页面路由及扩展
  • 样式和主题
  • HTTP 请求
  • Provider 组件
  • UI Schema
    — UI Schema
    — Schema渲染
    — 扩展Schema 组件
    — Schema组件库
    — Designable 设计器
    — SchemaToolbar 工具栏
    — Schemalnitializer 初始化器
    — SchemaSettings 设置器
内置的初始化器
image.png
内置的设置器
image.png

四、其他

  • 构建(自定义打包配置)
  • 语言列表
  • 依赖管理
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容