宁静的API - 处理大量数据的(Restful API - handling large amo

2019-07-30 16:59发布

我已经写我自己的RESTful的API,我想知道如何对付大量的从API返回的记录的最佳方法。

例如,如果我用GET方法myapi.co.uk/messages/这将带回XML的所有消息记录,在某些情况下可能是1000年。 这使得使用API​​非常缓慢。

任何人都可以提出处理这个问题的最好方法? 它是标准分批返回结果,并在请求中指定批量大小?

Answer 1:

你可以改变你的API,包括额外的参数来限制你的应用程序返回的数据的范围。

例如,您可以添加limitoffset参数获取只是一小部分。 这是怎么分页可根据REST来完成。 像这样的请求将导致从消息收集获取10种资源,从21日至30日。 这样,您就可以要求一个巨大的数据集的特定部分:

myapi.co.uk/messages?limit=10&offset=20 

降低负载的另一种方法是只问你的资源表示的某些部分。 这里的Facebook是如何做的:

/joe.smith/friends?fields=id,name,picture

请记住,在使用这些方法之一,您必须提供客户发现彼此的资源的一种方式。 你不能假设他们会只看参数,并开始搜索数据的改变它们。 这将是一个违反了REST范式。 必要的超链接提供给他们,以避免它。

我强烈建议观看上的RESTful API设计此演示文稿由apigee (截屏被称为“教狗休息”)。 好的做法和巧妙的想法接近日常问题有讨论。

编辑:该视频已更新了很多次,因为我张贴了这个答案,你可以检查出从2013年1月第3版



文章来源: Restful API - handling large amounts of data