What/How 我可以优化我的 API 吗?

What/How can I optimize for my API?

这更像是一个架构问题。

我正在为移动应用程序设计一个 API(我们称之为 API 1),它将查询我的 API 以获取新文章。我将调用另一个 API(我们称它为 API 2),它 return 向我提供原始新闻。

你问为什么 API 1 是必需的? 好吧,它会像 curate edition 一样做很多优化特定新闻,以这样一种方式进行格式化,以便移动设备更容易、更轻松地吸收提要。

所以 API 2 return 1000+ feeds 给我然后根据我的管理可以说我有 500 feeds 发送使用 API 1. 现在有缓存和所有它对我的后端来说都很好。问题出在移动设备上(尤其是旧的)。他们开始大汗淋漓地响应(Gzip 后 270kb)。

我的解决方案:分页:

我可以将 500 篇新闻文章拆分为 5*100 篇文章。该应用程序可以请求第 1、2、3、4 和 5 页。潜在缺点: 当 API 1 发送新鲜文章时5 * 100 的分裂受到干扰。例如在移动设备上查看新闻提要:

第 1 条,

第 2 条,

..

第99条,

第 100 条

----页面结束----

第101条,

第102条,

现在 API 1 次刷新提要后:

新增第1条,

新增第2条,

第 1 条,

第 2 条,

..

----页面结束----

第99条(重复),

第 100 条(重复)

第101条,

第102条,

解决此类问题的最佳做法是什么?

编辑 为了更好地了解问题,请考虑一个类似于 Apple 新闻或 Google 报摊并且有点类似于 Twitter 和 facebook 提要的应用程序。

您可以为每篇文章分配一个唯一的 ID,例如 GUID,​​并将这些 ID 与文章本身一起公开给 UI。然后 UI 的请求看起来像 "hey API 1, give me the next 100 articles after the article #id"。然后 API 1 端点将在缓存的提要中查找指定的 #id 并检索接下来的 100 篇文章。