Filemaker API是否为_find请求或portalData请求实现缓存?

时间:2019-05-28 16:53:09

标签: php curl filemaker

我正在重写一个使用Filemaker数据库的应用程序。从历史上看,PHP脚本具有与Filemaker的PHP SDK连接。我将其转换为使用Filemaker 17 API。

在开发过程中,我正在创建一条新记录,然后显示记录列表。创建新记录后,旧系统(使用PHP SDK)将立即显示更新后的列表。我正在开发的新系统不会。

几分钟后,新系统(使用Filemaker 17 API)将显示正确的列表。似乎需要5到10分钟。

所有这些都是通过使用门户网站来实现的。

我正在使用Symfony PHP框架。我曾尝试清除Symfony缓存。

我还尝试过将UNIX时间戳附加到API调用的_find URL。它仍然会返回一个列表,但这是一个陈旧的列表。

我也在使用'cache-control: no-cache' cURL选项。

我已经搜索了FM 17 API文档,但找不到任何相关内容。

是否有FM API实现的缓存?如果是这样,您如何禁用它?

我希望该列表可以通过FM 17 API立即更新。

-已更新-

如果我手动更新包含门户数据的记录,则从API返回的列表将立即生效。门户数据是否已缓存?

1 个答案:

答案 0 :(得分:1)

要确保有新鲜数据,您可以关闭API会话并开始新的会话。

  

完成访问托管数据库的代码后,请使用HTTP   具有会话URL的DELETE方法指定托管的名称   数据库和会话的访问令牌。如果您的代码没有   注销数据库会话,访问令牌在以下情况下无效   FileMaker Data API会话在最后一次会话后15分钟超时   调用指定令牌的电话。

https://fmhelp.filemaker.com/docs/17/en/dataapi/index.html#write-fm-data-api-calls_connect-database_log-out

或者作为发现的一部分,您可以在script.pre-request中运行脚本,作为_find的一部分,它将刷新布局上的门户。例如。使用“刷新门户”脚本步骤。您看到的“缓存”行为可能只是该Data API会话的布局未更新,并且该布局需要更新。

  

您可以通过包含以下内容来运行FileMaker脚本作为查找请求的一部分:   脚本中的script.prerequest,script.presort和script参数   请求正文。

https://fmhelp.filemaker.com/docs/17/en/dataapi/index.html#perform-a-find-request

您也可以使用“人员密钥”直接在“事件”表上进行查找。

最后要注意的是,如果某个地方有某种未提交的记录,或者是未完成提交的API脚本调用,或者其他原因,则数据可能尚未显示在门户中。

(注释答案已用新信息编辑)