logologo
开始
手册
开发
插件
API
English
简体中文
开始
手册
开发
插件
API
English
简体中文
logologo
概述

数据源

数据源管理
主数据源

外部数据源(数据库)

介绍
外部 MySQL
外部 MariaDB
外部 PostgreSQL
外部 MSSQL
外部 Oracle
主、外部数据库对比
REST API 数据源
人大金仓(KingbaseES)数据源

数据表

概述
普通表
继承表
文件表
树表
日历表
评论表
表达式表
SQL 表
数据库视图

数据表字段

概述
字段验证

基本类型

单行文本
多行文本
手机号码
电子邮箱
URL
整数
数字
百分比
密码
颜色
图标

选择类型

勾选
下拉菜单(单选)
下拉菜单(多选)
单选框
复选框

多媒体

Markdown
Markdown(Vditor)
富文本
附件(关系)
附件(URL)

日期 & 时间

概述
日期时间(含时区)
日期时间(不含时区)
Unix 时间戳
日期(不含时间)
时间

几何图形

点
线
圆
多边形

高级类型

UUID
Nano ID
排序
计算公式
自动编码
JSON
数据表选择器
加密

系统信息

创建日期
最后修改日期
创建人
最后修改人
空间
Table OID

关系类型

概述
一对一
一对多
多对一
多对多
多对多(数组)

开发

概述
Previous Page主、外部数据库对比
Next Page人大金仓(KingbaseES)数据源

#REST API 数据源

#介绍

用于接入 REST API 来源的数据。

#安装

该插件为商业插件,需要通过插件管理器上传并激活插件

20240323162741

#添加 REST API 源

激活插件之后,在数据源管理的 Add new 下拉菜单中选择 REST API。

20240721171420

配置 REST API 源

20240721171507

#添加 Collection

RESTful 的资源就是 NocoBase 的 Collection,例如 Users 资源

GET /users
POST /users
GET /users/1
PUT /users/1
DELETE /users/1

映射到 NocoBase API 里的配置为

GET /users:list
POST /users:create
POST /users:get?filterByTk=1
POST /users:update?filterByTk=1
POST /users:destroy?filterByTk=1

完整的 NocoBase API 设计规范参考 API 文档

20240716213344

查看「NocoBase API - Core」章节

20240716213258

REST API 数据源的 Collection 配置如下

#List

配置查看资源列表的接口映射

20240716211351

#Get

配置查看资源详情的接口映射

20240716211532

#Create

配置创建资源的接口映射

20240716211634

#Update

配置更新资源的接口映射 20240716211733

#Destroy

配置删除资源的接口映射

20240716211808

其中 List 和 Get 是 必须配置的两个接口。

#调试 API

#请求参数对接

示例: 为 List 接口配置分页参数(如果第三方 API 本身不支持分页,则以取到的列表数据来分页)。

20241121205229

请注意,只有在接口中已添加的变量才会生效。

第三方 API 接入参数名NocoBase 参数
page{{request.params.page}}
limit{{request.params.pageSize}}

可以点击 Try it out 进行调试,查看响应结果。

20241121210320

#响应格式转换

第三方 API 的响应格式可能并不是 NocoBase 标准,需要转换之后才能正确的在前端显示。

20241121214638

根据第三方 API 的响应格式调整转换规则,使其符合 NocoBase 输出标准。

20241121215100

调试流程说明

20240717110051

#变量

REST API 数据源提供了三类变量用于接口的对接

  • 数据源自定义变量
  • NocoBase 请求
  • 第三方响应

#数据源自定义变量

20240716221937

20240716221858

#NocoBase 请求

  • Params:URL 查询参数(Search Params),各个接口的 Params 有所不同;
  • Headers:请求体,主要提供了一些 NocoBase 自定义的 X- 信息;
  • Body:请求的 Body;
  • Token:当前 NocoBase 请求的 API token。

20240716222042

#第三方响应

目前提供的只有响应的 Body

20240716222303

各个接口对接时可用变量如下:

#List

参数说明
request.params.page当前页数
request.params.pageSize每页数量
request.params.filter过滤条件(需要符合 NocoBase 的 Filter 格式)
request.params.sort排序规则(需要符合 NocoBase 的 Sort 格式)
request.params.appends按需加载的字段,一般用于关系字段的按需加载
request.params.fields接口只输出哪些字段(白名单)
request.params.except排除哪些字段(黑名单)

#Get

参数说明
request.params.filterByTk必填,一般为当前数据的 ID
request.params.filter过滤条件(需要符合 NocoBase 的 Filter 格式)
request.params.appends按需加载的字段,一般用于关系字段的按需加载
request.params.fields接口只输出哪些字段(白名单)
request.params.except排除哪些字段(黑名单)

#Create

参数说明
request.params.whiteList白名单
request.params.blacklist黑名单
request.body创建的初始化数据

#Update

参数说明
request.params.filterByTk必填,一般为当前数据的 ID
request.params.filter过滤条件(需要符合 NocoBase 的 Filter 格式)
request.params.whiteList白名单
request.params.blacklist黑名单
request.body更新的数据

#Destroy

参数说明
request.params.filterByTk必填,一般为当前数据的 ID
request.params.filter过滤条件(需要符合 NocoBase 的 Filter 格式)

#配置字段

从适配的资源的 CRUD 接口的数据中,提取字段的元数据(Fields)作为 collection 的字段。

20240716223636

提取字段元数据。

20241121230436

字段及预览。

20240716224403

编辑字段(和其他数据源的方式类似)。

20240716224704

#添加 REST API 数据源区块

Collection 配置好了之后,就可以去界面添加区块了。

20240716225120