API 应该更多地关注缓存以缩短响应时间,还是减少所需的请求数量?
Should an API be focused more on caching to improve response times, or on lowering the number of requests required?
因此,我们有一个 API,其中包含大量可缓存的项目,例如文章和产品,但每个项目都可以附加 user-specific 数据,例如收藏夹和特定,计算值,并且它已经允许在每个列表 GET 端点上进行过滤和排序。您需要在访问 API.
之前进行身份验证
我们在 API:
中有当前 2 种不同的检索数据方式
对于博客文章,我们将博客与 user-specific is_favourite 和 friends_favourited 数据一起取回。这不会被缓存,因为它对每个用户都是唯一的。
对于商店产品,我们从一个端点取回产品,从另一个端点取回最喜欢的产品,从而允许我们缓存产品。
是时候统一这些了,我们不确定该走哪条路。 降低请求数量(减少缓存并可能增加服务器成本)更重要,还是更好?有可缓存的数据(增加响应时间并希望服务器成本以多个请求为代价)?
没有更好的方法。
如果客户请求一些 api 总是在一起,那么为一个请求而不是多个请求创建组合 api 可能是合理的。
如果客户端分别请求一些api,那么缓存会更好。
但这些方式并不相互排斥。我们使用 API 中的所有机制来提高速度。
在您的示例中,产品有自己的缓存,但用户数据也可能有缓存,对于每个用户,更改用户数据的事件可能会使缓存无效。而您的 api 只是结合来自两个带有一些逻辑的缓存。
因此,我们有一个 API,其中包含大量可缓存的项目,例如文章和产品,但每个项目都可以附加 user-specific 数据,例如收藏夹和特定,计算值,并且它已经允许在每个列表 GET 端点上进行过滤和排序。您需要在访问 API.
之前进行身份验证我们在 API:
中有当前 2 种不同的检索数据方式对于博客文章,我们将博客与 user-specific is_favourite 和 friends_favourited 数据一起取回。这不会被缓存,因为它对每个用户都是唯一的。
对于商店产品,我们从一个端点取回产品,从另一个端点取回最喜欢的产品,从而允许我们缓存产品。
是时候统一这些了,我们不确定该走哪条路。 降低请求数量(减少缓存并可能增加服务器成本)更重要,还是更好?有可缓存的数据(增加响应时间并希望服务器成本以多个请求为代价)?
没有更好的方法。
如果客户请求一些 api 总是在一起,那么为一个请求而不是多个请求创建组合 api 可能是合理的。
如果客户端分别请求一些api,那么缓存会更好。
但这些方式并不相互排斥。我们使用 API 中的所有机制来提高速度。
在您的示例中,产品有自己的缓存,但用户数据也可能有缓存,对于每个用户,更改用户数据的事件可能会使缓存无效。而您的 api 只是结合来自两个带有一些逻辑的缓存。