createDataProvider API
定义一个后端以加载服务器端集合。
导入
import { createDataProvider } from '@toolpad/studio/server';
描述
import { createDataProvider } from '@toolpad/studio-runtime/server';
import DATA from './movies.json';
export default createDataProvider({
async getRecords({ paginationModel: { start = 0, pageSize } }) {
const records = DATA.slice(start, start + pageSize);
return { records, totalCount: DATA.length };
},
});
数据提供器将集合暴露给 Toolpad Studio 前端。它们是服务器端数据结构,抽象了加载和操作后端记录集合(具有相似结构)的过程。它们可以直接连接到数据网格以显示底层数据。
参数
config
:DataProviderConfig
一个描述数据提供器功能的对象
返回值
Toolpad Studio 识别为数据提供器,并可供前端使用的对象。
类型
DataProviderConfig
描述数据提供器的功能。
属性
名称 | 类型 | 描述 |
---|---|---|
paginationMode? |
'index' | 'cursor' |
声明此数据提供器的分页策略。 |
getRecords |
async (params: GetRecordsParams) => GetRecordsResult |
负责获取底层数据的切片。 |
GetRecordsParams
属性
名称 | 类型 | 描述 |
---|---|---|
paginationModel? |
PaginationModel |
描述请求切片的分页模型。 |
filterModel |
FilterModel |
描述应用于数据的服务器端过滤器的过滤模型。 |
sortModel |
{ field: string; sort: 'asc' | 'desc'}[] |
描述结果集所需排序的排序模型。 |
PaginationModel
- 当
paginationMode
设置为'index'
时为IndexPaginationModel
。 - 当
paginationMode
设置为'cursor'
时为CursorPaginationModel
。
IndexPaginationModel
属性
名称 | 类型 | 描述 |
---|---|---|
start |
number |
请求切片的起始索引。 |
pageSize |
number |
请求切片的长度。 |
CursorPaginationModel
属性
名称 | 类型 | 描述 |
---|---|---|
cursor |
number |
用于寻址请求切片的游标。初始页面为 null 。 |
pageSize |
number |
请求切片的长度。 |
FilterModel
属性
名称 | 类型 | 描述 |
---|---|---|
logicOperator |
'and' | 'or' |
应用于过滤操作的运算符。 |
items |
{ field: string; operator: string; value: unknown }[] |
过滤器的组成部分,每个部分描述应用于数据集字段的操作。 |
GetRecordsResult
名称 | 类型 | 描述 |
---|---|---|
records |
any[] |
请求切片的起始索引。 |
totalCount? |
number |
请求切片的长度。 |
cursor? |
string | null |
当 paginationMode 设置为 cursor 时使用。它寻址集合中的下一页。传递 null 以指示集合的结尾。 |
hasNextPage? |
boolean |
您可以使用此属性代替 totalCount 来指示有更多页面可用。当无法获取确切计数时,这非常方便。 |