对于复杂的Web应用程序,一个页面视图可能需要许多不同类型的数据.如果您正在进行客户端模板化并从RESTful Web服务中提取此数据,则可能必须提出大量填充页面的请求.是否存在可以组合REST请求的约定,以接收包含所需响应的单个有效负载?
要使用"堆栈交换用户"页面作为示例,您可能需要至少从Stack Exchange API调用这些内容来构建页面:
这种API的提供者是否允许您通过单个请求获取所有数据? 特别是如果涉及其他根类型,则说出由于某种原因,您还必须请求/ revision/{id}和/ tags来构建页面.
为了清楚起见,我不想知道是否可以在Web API中提供这样的功能 - 我想知道是否有标准或至少有文档记录的方法.
我认为我们需要一些标准的方法来做到这一点,但在那之前,你可能是你自己的.
过去,当我想要跨多个资源进行交易时,我遇到了类似的挑战.我发明了新的资源,描述了我要做的更明确的行动(从帐户A中减去5,在帐户B中添加5成为与成员之间的交易).
也许通过使用另一个REST调用作为容器,可以在这里应用类似(但更通用)的方法;
POST /batchRequests { requests: [
{ method: 'POST', url: '/resource', payload: { ... } }
], transactional: false }
Run Code Online (Sandbox Code Playgroud)
然后返回包含结果的"BatchRequest"对象.这与Facebook的表现非常接近.
我认为这可能违反 REST 原则,不是吗?即每个对象表示及其有效负载的唯一 URI。这不会让事情变得更糟吗?考虑到它不是 TI 计算器,而是一台能够并行 HTTP 请求的现代计算机,而不是单个请求的时间最长的计算机。
不要认为有标准,但这里有一个例子 - https://developers.facebook.com/docs/reference/api/batch/
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |