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 篇文章。
这更像是一个架构问题。
我正在为移动应用程序设计一个 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 篇文章。