【发布时间】:2019-08-14 17:03:56
【问题描述】:
我有一个实体 ID 列表,需要从 Dynamics 提取到我的应用程序中。使用 WebAPI,查询必须进行 URL 编码并作为 GET 请求传递,这将实体的数量限制在大约 130 个(超过 URL 长度限制)
以前我们可以使用 SOAP 端点发出单个 POST 请求,但现在已弃用。
那么,现在进行此类查询的推荐方法是什么?
一些选项:
- 手动分页并通过 WebAPI 运行并行请求。这不太理想,尤其是在围绕 Dynamics 进行抽象时,因为请求可能会失败。
更新
感谢@Guido Preite,我能够使用 WebAPI batch request。基本上,您使用 130 多个实体发出 GET 请求,但在批处理请求正文中对其进行编码以解决字符限制。我将在下面发布邮递员的请求...
发帖到{{myDynamicsURL}}/api/data/v9.0/$batch
标题
Authorization:Bearer {{token}}
Content-Type:multipart/mixed;boundary=batch_AAA123
Accept:application/json
Cache-Control:no-cache
OData-MaxVersion:4.0
OData-Version:4.0
Prefer:odata.maxpagesize=500, odata.include-annotations="*", return=representation
身体
--batch_AAA123
Content-Type: application/http
Content-Transfer-Encoding:binary
GET {{myDynamicsURL}}/connections?$filter=(connectionid eq 9b704176-2f60-e911-a830-000d3a385a17 or connectionid eq 1ccc526c-2e6c-e911-a831-000d3a385a17 ... <REST OF QUERIES HERE>) HTTP/1.1
Accept: application/json
--batch_AAA123--
【问题讨论】:
标签: soap dynamics-crm dynamics-crm-webapi