问题标签 [odatalib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
27 浏览

rest - 批处理的 OData $value 支持

需要有关通过批处理支持 OData $value 的指导。请参阅以下示例和要求:

假设,我有一个实体说 Customer 并使用单独的 GET 调用获取以下客户的 $value 键:

获取https://services.odata.org/V3/Northwind/Northwind.svc/Customers('ALFKI')/$value 获取https://services.odata.org/V3/Northwind/Northwind.svc/Customers(' ANATR')/$value GET https://services.odata.org/V3/Northwind/Northwind.svc/Customers('ANTON')/$value

上述调用将以 MIME 格式返回内容。

现在,当我在批处理调用中进行上述相同的获取 $value 的设置时,我将一个接一个地获取 MIME 内容,而无需任何分隔符。但我需要的是某种有效的 json 内容,以便我知道第一个 $value 何时结束以及第二个 $value 何时开始。

所以目前Batch中的响应如下:

客户 1 的 MimeContent 客户 2 的 MimeContent 客户 3 的 MimeContent

如您所见,我们必须解析 mime 内容并查看第一个客户 1 内容的结束位置,然后为剩余的客户执行此操作。这效率不高且容易出错。所以我们在批量调用的情况下需要如下:

{ { 客户 1 的 MimeContent }、 { 客户 2 的 MimeContent }、 { 客户 3 的 MimeContent } }

如果我们在获取批处理 $value 时有一个有效的 json 构造,则很容易识别客户 1 和客户 2 的 $value。

需要有关如何以内存有效的方式使用 odata lib 实现这一点的指导。$value 是 mime 内容并且具有很高的内存占用,因此我们想要一种方法来实现某种延迟流,这样我们就不需要将所有 $value 保留在内存中。

Odatalib 是否有任何指导来支持上述要求?任何指导都会很好而且很有帮助。

谢谢你。