Hello Stackoverflow,
我现在正在写API很长一段时间,现在它开始与这些更大的api之一合作了。开始想知道如何塑造这个API,因为很多次我在更大的平台上看到一个大实体(例如商店中的产品页面)被单独加载(我们可以看到项目主体已加载,但评论仍在提取等)。
通常我所做的就是将注释作为SQL查询中的关系附加,所以我的前端查询单个API端点,如:
http://api.example.com/items/:id
它返回了所有必要的数据,如卖家信息,照片等。
逻辑上,卖家信息和照片都是小件数据(例如,物品只能有1个卖家,不超过10张照片),但评论数量可能会更大,而且关系(评论作者)。
将一个端点分成两个独立的端点(如:
)是否有意义http://api.example.com/items/:id
http://api.example.com/items/:id/comments
这种方法的缺点是什么?这是常见做法吗?或许我误解了一些概念?
一个缺点可能是执行了2个请求,但另一方面,第一个端点应该更快地返回数据(因为它比获取注释n更轻),因此页面可能会更快地显示并显示微调器以供注释部分。这样我也可以对评论进行分页。
这种端点分离可能包含哪些改进?或许我完全错了,它应该以完全不同的方式完成?
答案 0 :(得分:1)
我认为这是一个很好的方法:
一个项目的评论数量可能很大,因为通过这种方法,您可以更轻松地对其进行分页。
如果您需要访问一个项目的评论而不需要其他项目信息
我认为任何先前的条件都证明了这一决定是正确的,是的,这是常用的方法。