首页 > 解决方案 > 如何根据分页 API 中的属性获取前 X 个项目?

问题描述

请注意,这个问题是故意含糊的。 假设,我有一个返回书籍分页数据的 API。每页 100 个书籍对象 [此数据出现在标题中,如“总页数”。响应正文采用 JSON 对象列表的格式。

[
 {},
 {},
  .
  .
  .
]

假设 book 对象具有所有必要的数据,例如标题、描述、销售数量等。如何返回畅销的 n 本书[畅销 => 最高销量]?您不能提供任何参数,例如

GET endpoint/orderby=popularity&order=desc

到此端点,您无法进行任何数据库查询优化。我们如何用纯代码解决这个问题?我将不胜感激任何想法或建议。

标签: mysqlalgorithmapirestendpoint

解决方案


由于端点接受的参数有限,因此您唯一的选择是获取所有页面(通过不断循环直到出错),然后在您的程序中对其进行排序。

如果上述解决方案很慢,您可以通过放宽您的要求来return top-selling n number of books优化return a few top-selling books which are in the top X%


推荐阅读