哪一个是制作单个HTTP请求或多个小HTTP请求的最佳设计?

时间:2017-08-12 19:27:54

标签: ajax angular api http request

我正在创建一个角度应用程序,我需要显示单个动物数量的计数。

例如:

我的后端数据基于动物存储如

{ id: 1, name: "lion" },{ id: 2, name: "lion" },{ id: 3, name: "lion" },
{ id: 4, name: "tiger" }, { id: 5, name: "tiger" }, { id: 6, name: "wolf" }

然后我需要显示

3只狮子 2只老虎 1只狼

我有/ animals:GET终点返回所有动物。

响应:

{
  totalCount: 6,
  animals: [
{ id: 1, name: "lion" },{ id: 2, name: "lion" },{ id: 3, name: "lion" },
{ id: 4, name: "tiger" }, { id: 5, name: "tiger" }, { id: 6, name: "wolf" }
  ]
}

这个要求是更好的设计

  1. 制作一个单一的请求/动物:GET没有任何额外的参数
  2. 制作多个请求/动物块?name = lion和/ animals?name = tiger and / animals?name = wolf

2 个答案:

答案 0 :(得分:1)

最好向服务器发出一个请求,一次性为您提供所需的所有数据。单个呼叫将比多个连续呼叫更快。

一个很好的比喻就是前往商店。如果你必须检索10件物品,你最终会携带相同数量的重量(即数据),无论你是去过一次还是去过10次,但是,10次就需要10次旅行。

与服务器请求相同。您的客户端必须创建与服务器的连接,请求数据,服务器从池中获取连接,数据库必须找出要检索的数据的索引。如果你这样做了一次那么它将全部发生在一个单一的操作而不是所有这些事情发生10次。

答案 1 :(得分:0)

这取决于您想要的数据类型和方式。单个请求总是比多个请求更好,因为您的服务器必须做更少的工作,因此如果您的应用扩展,性能问题会更少。

如果你想获取所有动物只提出一个请求,但如果你想获取3-4只动物,你可以创建多个请求或通过将数组作为参数传递来发出单个请求