从端点获取相关矩阵的最佳方法

Best way to get a correlation matrix from an endpoint

目前,我在 Google Firebase 上保存相关性。结构看起来有点像这样:

{a: {a: 1.0, b: 0.6, c: -0.3, ...}, b: {a: 0.6, b: 1.0, c: -0.5, ...}, ...}

我想高效地检索完整的相关矩阵,但我也想自由地 select 项目的任意组合。

我有一个可行的解决方案,例如, “[GET]: /correlations/a/b”,但正如您可以想象的那样,我多次调用端点来下载完整的相关矩阵,即使我已经通过代码调用“/correlations/a/b”+“[=”省略了23=]”和“/correlations/a/a”。

我在创建 post 之前阅读过,我也可以使用带有正文的 [POST] 请求来下载矩阵,只需调用端点一次。但是,这是好的做法吗?有没有更好的方法来解决这个问题?

提前致谢!

您可以对 return 输出进行批量请求。您可以在 GET 请求中使用任一参数来获取相关性

   /api?q1=cor(a,b)&q2=cor(b,c) 

或者您可以使用 post 请求

   /api

where body = {"correlation vars": [(a,b), (c,d)]}
  1. 尝试设计API更具可读性。
  2. 如果您希望传递复杂的查询,那么 POST 请求可能是更好的选择。
  3. 可以使用 GET 请求中的参数创建更简单的查询
  4. 使用 gZip 或字节数组压缩数据,因此 I/O 调用速度更快。许多框架都为此提供构建支持。
  5. 根据您的要求衡量 CPU 计算和 I/O 调用成本之间的权衡。