Lee*_*Tee 17 api rest web-services
我编写了自己的Restful API,并且想知道处理从API返回的大量记录的最佳方法.
例如,如果我使用GET方法,myapi.co.uk/messages/将为所有消息记录带回XML,在某些情况下可能是1000.这使得使用API非常迟缓.
任何人都可以建议处理这个问题的最佳方法吗?是批量返回结果并在请求中指定批量大小的标准吗?
ton*_*edz 19
您可以更改API以包含其他参数,以限制应用程序返回的数据范围.
例如,你可以添加limit和offset参数来获取一小部分.这就是如何根据REST进行分页.这样的请求将导致从21到30日从消息集合中获取10个资源.这样您就可以要求提供大量数据集的特定部分:
myapi.co.uk/messages?limit=10&offset=20
Run Code Online (Sandbox Code Playgroud)
减少有效负载的另一种方法是仅询问资源表示的某些部分.这是facebook如何做到的:
/joe.smith/friends?fields=id,name,picture
Run Code Online (Sandbox Code Playgroud)
请记住,在使用这些方法中的任何一种时,您必须为客户端提供一种发现每种资源的方法.您不能假设他们只是查看参数并开始更改它们以搜索数据.这将违反REST范式.为他们提供必要的超链接以避免它.
我强烈建议在apigee 上查看关于RESTful API设计的演示文稿(截屏视频称为"教狗休息").在那里讨论了处理日常问题的良好做法和巧妙的想法.
编辑:自我发布此答案以来,视频已多次更新,您可以查看2013年1月的第3版
通常有多种不同的方法可以提高 API 性能,包括针对大型 API 的性能。这些主题中的每一个都可以深入探讨。
来源:https : //apievangelist.com/2018/04/20/delivering-large-api-responses-as-efficiently-as-possible/
| 归档时间: |
|
| 查看次数: |
28570 次 |
| 最近记录: |