2

使用 pyArango 和 Foxx 微服务的主要区别是什么?正如我所见,我们最终在创建微服务时将 AQL 写入 .js 文件中。它与写入 pyArango 客户端有何不同?

使用 Foxx 微服务和 pyArango 有什么好处?

谢谢

4

1 回答 1

2

Foxx 微服务在数据库服务器上运行,这意味着如果它们需要操作大量数据以提供您需要的数据,那么数据操作将发生在服务器上。

如果您使用 pyArango 从外部处理大量数据,则必须通过您的 pyArango 驱动程序从服务器输出全部数据,以便 Python 可以处理数据以构建所需的答案。

显然,与 Foxx 的另一个区别是它是用 JavaScript 编写的,因此对于您的项目而言,这可能是一个值得思考的区别。

即使您在 ArangoDB 服务器上运行 Python,并通过 pyArango 与 Foxx 提取数据,我还是会冒险猜测 Foxx 会更快。

就个人而言,在实现 ArangoDB 时,我不允许直接表访问其数据,而是强制所有连接通过 Foxx。

主要好处是我可以控制传入的数据模式、支持的操作、业务逻辑、用户访问级别,并限制数据消费者破坏数据完整性的可能性。

另一个关键好处是,通过 Foxx 公开数据并阻止直接 AQL 访问,我可以灵活地更改底层数据集合、模型、结构和关系,而无需消费者更改他们的代码,因为我只需更新相关的Foxx REST 端点,它们以与结构更新之前相同的方式不断返回数据。

这不是一个非黑即白的决定,但通过考虑应用程序的安全性、消耗、生命周期和优先级,您将得出适合您的答案。

于 2019-12-12T02:34:56.430 回答