将一个API调用分解为多个API调用的优点

时间:2015-11-27 06:49:30

标签: performance api networking

我有一个API调用,需要18s分钟才能返回一堆数据。该数据是具有多个键的对象。

是否可以将其分别用于每个密钥的多次调用?

发送一个API调用需要很长时间才能返回,而不是为网络负载和服务器发送多个调用(5分钟)?

1 个答案:

答案 0 :(得分:0)

首先为具有简单接口的API进行设计,如果加载成为问题,则在实现中解决该问题。

将单个对象分解为多个子对象的API调用必须由用户重新组装,这会增加API用户的复杂性。从API设计的角度来看,这是糟糕

如果您的测试人员发现有必要解决网络负载问题,您可以在不更改接口的情况下减少该API调用实现中的数据传输。例如:

  • 您可以转移每个密钥,在密钥之间暂停,以允许 发生其他网络流量。这对于用户来说是不可见的 你的API,虽然他们可能会注意到这个特定的API调用 现在运行得慢了。

  • 或者您可以根据需要从服务器检索密钥。也就是说,在通过另一个API调用请求密钥之前,不要将密钥检索到对象的本地副本中。同样,从API用户的角度来看,这是不可见的,尽管每个密钥的初始加载速度会较慢(后续访问已经检索到的密钥当然会很快)。

在这两个示例中,有必要增加整体设计的复杂性,但这种复杂性对API的用户是隐藏的。这是良好的API设计的关键。