gpt4 book ai didi

node.js - 具有版本化数据和差异端点的 REST API : optimizing bandwidth and performance

转载 作者:太空宇宙 更新时间:2023-11-04 02:24:36 25 4
gpt4 key购买 nike

我的 NodeJS 项目基于 SailsJS,本身使用 ExpressJS。

移动应用程序将使用其 API 从中获取数据。

棘手的部分是我不希望客户端应用程序每次数据库发生更改时都获取整个数据树。

客户端只需要下载已经获取的数据与服务器上的数据之间的差异。

为了实现这一点,我想到在服务器上使用 git。即创建一个存储库并将所有端点保存为存储库中的 json 文件。每次保存都会触发自动提交。

然后我可以创建一个特定的 API 端点,它将接受提交 sha 作为参数,并返回它与 git HEAD 之间的差异。

This post威廉·本顿(William Benton)用这个想法安慰了我。

我现在正在寻找任何可以帮助我根据上面引用的语言和框架完成这项工作的提示:

  • 我希望看到实际的概念证明,但找不到
  • 我还找不到将 git 与 NodeJS 结合使用的简单方法。
  • 我不确定如何解析使用 IONIC 框架(因此 AngularJS)开发的客户端应用程序上返回的差异。

注意:API 只能读取。所有数据库移动都将由少数用户使用的自定义 Web 后端触发。

最佳答案

我使用了那篇文章中的想法 experimental configuration-management service 。该代码是用 Erlang 编写的,我无法提供特定于 Node 的建议,但我有一些一般性建议。

当时,从我有兴趣使用的任何语言中调用 git 本身都不是一个很好的选择。使用 git 作为通用版本化对象存储实际上效果出奇的好,但是使用 git 管道命令很痛苦(而且很慢,因为所有的 fork ),并且(在当时)所有可用的 native git 库都存在限制。

我最终实现了自己的持久 trie 数据结构,并在其之上放置了一个类似 git 的库接口(interface)。这样做的好处是您的差异可以对您存储的数据格式敏感;如果您调用 git,那么您将不得不为数据寻找适合标准差异的序列化格式。 (不过,如果没有可比较的格式,您仍然可以将一系列操作发送回客户端,以重播它们拥有的任何陈旧对象。)

关于node.js - 具有版本化数据和差异端点的 REST API : optimizing bandwidth and performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com