需要使用JSON的带有Web API的Odata V4 Batch的示例

时间:2016-05-17 11:34:16

标签: asp.net-web-api odata

我是OData V4的新手。我已经使用oData V4的Web API轻松实现了CRUD操作。

但我不明白如何使用JSON执行批处理请求。我也访问了下面的链接:

http://www.odata.org/documentation/odata-version-3-0/batch-processing/ http://www.odata.org/documentation/odata-version-3-0/batch-processing/

但无法理解使用JSON执行批处理操作。

以下是执行多次获取的代码示例。

 $.ajax({
    url: 'http://localhost:52603/odata/$batch',
    contentType: 'multipart/mixed; boundary=batch_36522ad7-fc75-4b56-8c71-56071383e77b', 
    data: {
        __batchRequests: [
            { requestUri: "Employee", method: "GET" },
            { requestUri: "Country", method: "GET" }
        ]
    },
    success: function (data) {
        alert(data);
        console.log(data);
    }
   });

任何形式的帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

从您的问题中不清楚您是如何尝试使用ODATA批量请求的。但通常,您可以将POST请求发送到ODATA服务的批处理结束点,其中POST数据包含作为更改集的各个批处理请求。例如:

请求网址:http://localhost:52603/odata/$batch

标题:contentType: 'multipart/mixed; boundary=batch_36522ad7-fc75-4b56-8c71-56071383e77b'

POST数据:

--batch_36522ad7-fc75-4b56-8c71-56071383e77b
Content-Type: multipart/mixed; boundary=changeset_067e003e-eb9a-49a7-8ff7-4edc0e39f0f5

--changeset_067e003e-eb9a-49a7-8ff7-4edc0e39f0f5
Content-Type: application/http
Content-Transfer-Encoding: binary

GET http://localhost:52603/odata/Employee


--changeset_067e003e-eb9a-49a7-8ff7-4edc0e39f0f5
Content-Type: application/http
Content-Transfer-Encoding: binary

GET http://localhost:52603/odata/Country


--changeset_067e003e-eb9a-49a7-8ff7-4edc0e39f0f5--
--batch_36522ad7-fc75-4b56-8c71-56071383e77b--

OData specs有一些细节示例。