SharePoint REST API - 一个请求批量操作
2017-10-23 13:35
591 查看
博客地址:http://blog.csdn.net/FoxDave
本篇主要讲解如何应用$batch查询选项来批量执行REST/OData请求,它将多个操作捆绑到一个请求中,可以改进应用程序的性能。
$batch选项执行摘要
SharePoint Online(也包括SharePoint 2016)和Office 365的API实现了OData的$batch查询选项,下面罗列了一些主要的点:
1. 请求URL由根服务URL和$batch选项构成,例如https://fabrikam.sharepoint.com/_api/$batch或https://fabrikam.office365.com/api/v1.0/me/$batch。
2. HTTP请求的MIME类型为multipart/mixed。
3. 请求的body被请求头的边界字符串分割成了相对独立的部分。
4. 请求body的每个部分有自己的HTTP动作符和REST URL,还有内部的body。
5. 一个部分可以是读操作或写操作的变更集合或函数调用。变更集合本身的MIME类型是multipart/mixed,它里面的部分包含插入、更新或删除操作。
6. 最后一点需要注意,不支持“全部或没有”这种表达,变更集合中的操作是相对独立的,任何失败的部分都不会影响其他的,并且也不会回滚,这一点在开发的时候需要留意。
代码示例
C#:OfficeDev/Core.ODataBatch
JavaScript:andrewconnell/sp-o365-rest
请求和响应的示例
下面是一个带有两个GET操作的HTTP请求从两个不同列表获取列表项标题的请求和响应示例。
POST https://fabrikam.sharepoint.com/_api/$batch HTTP/1.1
Authorization: Bearer <access token omitted>
Content-Type: multipart/mixed; boundary=batch_e3b6819b-13c3-43bb-85b2-24b14122fed1
Host: fabrikam.sharepoint.com
Content-Length: 527
Expect: 100-continue
--batch_e3b6819b-13c3-43bb-85b2-24b14122fed1
Content-Type: application/http
Content-Transfer-Encoding: binary
GET https://fabrikam.sharepoint.com/_api/Web/lists/getbytitle('Composed%20Looks')/items?$select=Title HTTP/1.1
--batch_e3b6819b-13c3-43bb-85b2-24b14122fed1
Content-Type: application/http
Content-Transfer-Encoding: binary
GET https://fabrikam.sharepoint.com/_api/Web/lists/getbytitle('User%20Information%20List')/items?$select=Title HTTP/1.1
--batch_e3b6819b-13c3-43bb-85b2-24b14122fed1--下面是带有一个DELETE操作和一个GET操作的请求示例
SharePoint REST接口部分的讲述就到这里。
本篇主要讲解如何应用$batch查询选项来批量执行REST/OData请求,它将多个操作捆绑到一个请求中,可以改进应用程序的性能。
$batch选项执行摘要
SharePoint Online(也包括SharePoint 2016)和Office 365的API实现了OData的$batch查询选项,下面罗列了一些主要的点:
1. 请求URL由根服务URL和$batch选项构成,例如https://fabrikam.sharepoint.com/_api/$batch或https://fabrikam.office365.com/api/v1.0/me/$batch。
2. HTTP请求的MIME类型为multipart/mixed。
3. 请求的body被请求头的边界字符串分割成了相对独立的部分。
4. 请求body的每个部分有自己的HTTP动作符和REST URL,还有内部的body。
5. 一个部分可以是读操作或写操作的变更集合或函数调用。变更集合本身的MIME类型是multipart/mixed,它里面的部分包含插入、更新或删除操作。
6. 最后一点需要注意,不支持“全部或没有”这种表达,变更集合中的操作是相对独立的,任何失败的部分都不会影响其他的,并且也不会回滚,这一点在开发的时候需要留意。
代码示例
C#:OfficeDev/Core.ODataBatch
JavaScript:andrewconnell/sp-o365-rest
请求和响应的示例
下面是一个带有两个GET操作的HTTP请求从两个不同列表获取列表项标题的请求和响应示例。
POST https://fabrikam.sharepoint.com/_api/$batch HTTP/1.1
Authorization: Bearer <access token omitted>
Content-Type: multipart/mixed; boundary=batch_e3b6819b-13c3-43bb-85b2-24b14122fed1
Host: fabrikam.sharepoint.com
Content-Length: 527
Expect: 100-continue
--batch_e3b6819b-13c3-43bb-85b2-24b14122fed1
Content-Type: application/http
Content-Transfer-Encoding: binary
GET https://fabrikam.sharepoint.com/_api/Web/lists/getbytitle('Composed%20Looks')/items?$select=Title HTTP/1.1
--batch_e3b6819b-13c3-43bb-85b2-24b14122fed1
Content-Type: application/http
Content-Transfer-Encoding: binary
GET https://fabrikam.sharepoint.com/_api/Web/lists/getbytitle('User%20Information%20List')/items?$select=Title HTTP/1.1
--batch_e3b6819b-13c3-43bb-85b2-24b14122fed1--下面是带有一个DELETE操作和一个GET操作的请求示例
POST https://fabrikam.sharepoint.com/_api/$batch HTTP/1.1 Authorization: Bearer <access token omitted> Content-Type: multipart/mixed; boundary=batch_7ba8d60b-efce-4a2f-b719-60c27cc0e70e Host: fabrikam.sharepoint.com Content-Length: 647 Expect: 100-continue --batch_7ba8d60b-efce-4a2f-b719-60c27cc0e70e Content-Type: multipart/mixed; boundary=changeset_efb6b37c-a5cd-45cb-8f5f-4d648006e65d --changeset_efb6b37c-a5cd-45cb-8f5f-4d648006e65d Content-Type: application/http Content-Transfer-Encoding: binary DELETE https://fabrikam.sharepoint.com/_api/Web/lists/getbytitle('OldList') HTTP/1.1 If-Match: "1" --changeset_efb6b37c-a5cd-45cb-8f5f-4d648006e65d-- --batch_7ba8d60b-efce-4a2f-b719-60c27cc0e70e Content-Type: application/http Content-Transfer-Encoding: binary GET https://fabrikam.sharepoint.com/_api/Web/lists HTTP/1.1 --batch_7ba8d60b-efce-4a2f-b719-60c27cc0e70e--感兴趣想了解更多关于OData库信息的可以访问官网。
SharePoint REST接口部分的讲述就到这里。
相关文章推荐
- SharePoint REST API - 使用REST API和jQuery上传一个文件
- SharePoint REST API - 基本操作(一)
- SharePoint REST API - OData查询操作
- SharePoint REST API - 基本操作(二)
- SharePoint REST API - REST请求导航的数据结构
- Post/Reply a post by Social feed REST API in SharePoint 2013
- SharePoint REST API - 使用REST接口对列表设置自定义权限
- Windows 商店应用中使用 SharePoint REST API
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
- 使用Rest API开发SharePoint Online
- SharePoint REST API - 同步SharePoint列表项
- SharePoint REST api
- SharePoint REST API - 文件夹和文件
- SharePoint REST API - 确定REST端点URL
- SharePoint REST API - 概述
- linq and rest api in sharepoint
- Rest Api how to retrieve list items from SharePoint Online
- SharePoint rest api VS 取出来时间不一致问题
- SharePoint REST API - 使用REST接口对列表设置自定义权限
- SharePoint2007安装:Microsoft.SharePoint.Upgrade.SPUpgradeException: 未能加载一个或多个类型。