我需要从StoreClient(Javascript)中获取所有数据。下图的数据格式位于Zapier Storage中。
const store = StoreClient('mysecret');
const value = await store.getMany('mykey'); // or store.get('mykey')
return {result: value}
此代码运行良好。但是我需要将所有存储的键及其所有子值一起循环处理。我没有找到方法:(
我尝试了 store.list_pop(key),但是列表具有不同的存储格式。并且不会检索数据。
答案 0 :(得分:1)
我建议使用Zapier的存储API,该API允许您通过对https://store.zapier.com/api/records的GET请求检索所有存储的数据。我经常不得不做同样的事情,这对我有用。
看看他们的文档here。我通常使用请求库在Python中进行编码。但是我敢肯定,使用Java脚本中的ajax或fetch请求,您可以获得类似的结果。
编辑
如果我正确理解了您的问题,则您正在尝试“获取”存储在Zapier的存储客户端中的所有数据。根据他们的API文档:
Zapier将数据存储为可以容纳键值对的字典对象。这些值也可以是嵌套字典或列表。不管您如何存储数据(简单的键值对,嵌套列表,嵌套字典或前述的某种组合),“ GET”请求都将返回整个对象。如前所述,我通常使用Python的请求库来处理HTTP请求,但是使用Javascript提取请求就可以达到相同的结果。我在https://store.zapier.com/api/records?secret=dog上设置了一个虚拟存储帐户,以测试并说明其工作方式。请参阅下面的代码。
var url = "https://store.zapier.com/api/records?secret=dog";
const res = await fetch(url);
const body = await res.json()
return {JSON : body}
不幸的是,由于我对Javascript缺乏了解,我不得不将这个秘密隐藏在url中,我认为这不是理想的方法,但是对于本示例而言,它确实可以胜任。请参阅下面的输出。
如您所见,“ GET”请求返回了存储在我的Zapier存储帐户中的所有数据。我只是返回了从“ GET”请求中检索到的数据,但是您当然可以遍历结果并根据需要执行逻辑。这不会修改任何存储的数据,我通常要做的是使用“ GET”请求提取所有存储的日期,对其进行修改,删除旧存储,然后“ POST”我修改后的存储信息。这使我可以将请求限制为两个调用,而不是修改每个单独的值。