【问题标题】:Multiple GET requests vs one GET that returns multiple objects [closed]多个 GET 请求与一个返回多个对象的 GET [关闭]
【发布时间】:2017-01-31 16:21:25
【问题描述】:

我正在构建一个 REST API,想知道是否有任何缺点或建议反对发出多个请求或一个返回一组对象的请求。我四处搜索并找不到关于此的讨论,所以如果它在那里,我深表歉意。

例如:

多个请求:

获取#1

[ { "colors": ['blue','red','green'] } ]

获取#2

[ { "animals": ['dog','cat','bird'] } ]

获取#3

[ { "names": ['John','Jacob','Josh'] } ]

或单个请求:

获取#1

[ 
  { 
    "colors": ['blue','red','green'],
    "animals": ['dog','cat','bird'],
    "names": ['John','Jacob','Josh'] 
  } 
]

就个人而言,我不介意任何一种方式。我也认为如果使用字典,将来不会有任何问题。我更想知道这是否被看不起,冷漠,甚至被推荐。

为了进一步澄清,数据将是相关的。我正在寻找一般意见和技术细节,即一个请求可以比尝试三个请求快 x 倍。

【问题讨论】:

  • 两者都很好,例如:myapi/users(获取所有用户)和myapi/users/2545(获取单个用户)当然你需要按组分开......你在 get#1 混合所有
  • 这完全取决于查询的上下文。如果对象彼此相关,则似乎没有理由将事物分开。此外,请求的计算成本可能很高,因此尝试将其数量保持在合理范围内是合理的

标签: javascript json


【解决方案1】:

从性能的角度来看,使用一个 GET 速度要快得多。但我认为这真的取决于你的用例。您还希望在性能与代码可读性之间取得平衡。将您的 GET 调用分组到有意义的逻辑组中可能是个好主意,并且对于将来维护您的代码的开发人员来说是可以理解的。

【讨论】:

  • 谢谢,有道理。无论哪种方式,在浏览器上对其进行测试都可以正常工作,但是您是对的,它通过单个请求更快。在移动浏览器上有些明显。随着时间的推移,将会添加数据,所以我想我会将它们作为一个请求保留。所有的数据都是相关的。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2013-12-05
  • 2023-03-31
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 2015-03-30
  • 1970-01-01
相关资源
最近更新 更多