> For the complete documentation index, see [llms.txt](https://doc.duaer.com/zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/zh/guides/rest-api-process-source.md).

# 用 REST 接口做流程数据来源：分页、过滤和增量读取

没有现成连接器的系统，只要有返回 JSON 的接口，就能在向导里配置成流程数据来源，不用写代码。
## 需要准备什么？

一个返回 JSON 的 GET 接口，返回内容里有一个记录列表，每条记录至少有事项编号、步骤（或状态）和时间。接口需要登录时，在 Duaer 里新建一个 Header Auth、Query Auth、Basic Auth 或 Bearer Auth 凭证；公开接口不用凭证。

## 怎么配置？

1. 所有者或管理员打开「数据来源」，点「添加数据来源」，在「接口」下选 REST 接口。
2. 填接口地址（不带查询参数）和记录所在路径，例如 data.items；返回的就是列表时留空。
3. 需要时添加过滤条件：每一条都作为查询参数随每次请求发送，例如 status = open。
4. 选分页方式：不分页、页码、偏移量、游标（下一页的游标在返回中的路径）、返回中的下一页地址，或 Link 响应头，并按接口填参数名。
5. 接口支持按修改时间之类的字段筛选时，填增量参数（例如 updated_since）。点「读取字段」后再选增量字段（例如 updated_at）：每次读取把已读到的最大值填进这个参数，只读之后变化的记录。
6. 点「读取字段」，看到列和几条记录后点「下一步」，像表格一样选事项编号、步骤和时间，然后确认。设置改过后要重新读取字段。

## 多久读一次，读多少？

每次运行最多读 20 页，每页不超过 10 MB；数据多时分多次读完，再从读到的最大增量值开始下一轮。没有增量参数时，每轮都从第一页读起，同一步骤不会重复写入。

## 安全吗？

- 直接访问只用 https，并且不会访问内网、本机或链路本地地址，每次跳转都会再检查。
- 内网系统只能通过本地数据网关读取，网关要列出这个地址；经网关时可以用 http。
- 凭证只发给接口所在的主机：跳到别的主机或下一页地址在别的主机时，读取会停下并说明原因。
- 在向导里读取字段时，只能用你自己有权使用的凭证。

## 有哪些限制？

- 只支持 GET 请求和 JSON。
- 嵌套对象按“a.b.c”展开为列，最多三层；数组保存为 JSON 文本；最多 200 列。
## Questions

### 和推送接口有什么不同？

推送接口等系统把事件发给 Duaer；REST 接口是 Duaer 按计划去读系统。系统能主动推送时用推送接口，只能被读取时用 REST 接口。

## 相关

- [在 Duaer 里添加流程数据来源](https://doc.duaer.com/zh/build/process-sources.md)
- [在 Duaer 里从数据看出流程，并生成工作流程](https://doc.duaer.com/zh/build/process.md)
- [在 Duaer 里看流程发现和 SOP 符合度](https://doc.duaer.com/zh/build/process-findings.md)
- [ServiceNow 工单流程：每张事件和请求项卡在哪一步](https://doc.duaer.com/zh/guides/servicenow-ticket-process.md)
- [Jira 问题流程：每个问题在哪个状态等得最久](https://doc.duaer.com/zh/guides/jira-issue-process.md)

