跳到内容
+

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 前端。它们是服务器端数据结构,抽象了加载和操作后端记录集合(具有相似结构)的过程。它们可以直接连接到数据网格以显示底层数据。

参数

返回值

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 来指示有更多页面可用。当无法获取确切计数时,这非常方便。

用法