我正在寻找一种可以克隆GraphQL API上暴露的数据的工具。
基本上可以定期运行并递归地将原始数据响应复制到磁盘,利用基于连接的分页&光标,确保镜像内容的进度一致性。
假设这将是一个全天候提取数据的运行器,它将不得不重写/转换已经复制的数据,或者更好地以更事件源的方式应用更新,以便更容易在源API数据中提供不同的更改集。
我不知道有任何这样的工具。我不确定这样的工具是否会存在,因为
- 从GraphQL中检索数据只需要现有GraphQL库上最薄的层,这些库具有相当丰富的功能
- 转换/写入可能是另一个工具的一部分。我相信已经存在一些这样的工具。我能想到的最简单的例子是Git。获取diff就像在覆盖现有的版本控制文件后运行
git diff
一样简单。
检索数据的简单示例改编自graphql-request
文档快速入门
import { request, gql } from 'graphql-request'
import { writeFile } from 'fs/promises'
const query = gql`
{
Movie(title: "Inception") {
releaseDate
actors {
name
}
}
}
`
request('https://api.graph.cool/simple/v1/movies', query)
.then((data) => writeFile('data.json', data))