# dataProviders

页面通过 `requestData()` 发起请求。飞块找到清单中的提供者，把输入和实例配置交给后台；后台返回值成为这次请求的结果。

处理函数定义见 [DataProviderHandler](./node-sdk.md#dataproviderhandler)，用法见[请求数据与调用服务](../guides/data-services.md)。

## DataProvider

清单位置：`manifest.contributes.dataProviders[]`。

### `DataProvider.id`

`string` · 必填

提供者 ID，使用小写字母开头，可包含小写字母、数字、`.`、`_` 和 `-`，最多 128 个字符。宿主保留 `host-icon` 用于页面图标查询，插件不能声明该 ID。

### `DataProvider.widget`

`string` · 必填

对应的超级块 ID。只有该类型的已放置实例可以请求它。

### `DataProvider.lifetime`

`"request"` · 必填

结果属于单次请求。

### `DataProvider.visibility`

`"instance"` · 必填

响应返回给发起请求的实例。

### `DataProvider.requestSchema`

`Schema` · 可选

输入对象的 Schema，根 `type` 为 `object`。省略时接收空对象。

### `DataProvider.responseSchema`

`Schema` · 必填

返回值的 Schema。

### `DataProvider.timeoutMs`

`integer` · 可选

后台请求等待时间，默认 15000 毫秒，范围为 100–30000。

### `DataProvider.maxBytes`

`integer` · 可选

响应 JSON 最大字节数，默认 32768，范围为 1024–65536。
