SharePoint REST API - 一个请求批量操作
博客地址: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: binaryGET 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: binaryGET 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: binaryDELETE 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: binaryGET https://fabrikam.sharepoint.com/_api/Web/lists HTTP/1.1--batch_7ba8d60b-efce-4a2f-b719-60c27cc0e70e--
感兴趣想了解更多关于OData库信息的可以访问官网。
SharePoint REST接口部分的讲述就到这里。
SharePoint REST API - 一个请求批量操作相关推荐
- SharePoint REST API - REST请求导航的数据结构
博客地址:http://blog.csdn.net/FoxDave 从一个既定的URL获取其他SharePoint资源 当你用SharePoint REST服务进行开发的时候,你经常会从指定的一个 ...
- ASP.NET Web API 记录请求响应数据到日志的一个方法
原文:ASP.NET Web API 记录请求响应数据到日志的一个方法 原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-resp ...
- 请求接口返回的是一个html_搜狗美图 API 接口请求调用
搜狗美图 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以POST方式提交图片即可.搜狗美图 API 接口每日都会更新一张美图,本 API 接口可选择生成当日美图,也 ...
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表...
写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...
- SharePoint REST API - 基本操作(一)
博客地址:http://blog.csdn.net/FoxDave 本文讲述如何应用SharePoint的REST接口完成基本的增删查改操作. 使用SharePoint客户端API和REST服务进 ...
- API HTTP 请求调试:Postman
参考: Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试. 它能够发送任何类型的HTTP requests (GET, HEAD, POST, PU ...
- Spring MVC 原理探秘 - 一个请求的旅行过程
1.简介 在前面的文章中,我较为详细的分析了 Spring IOC 和 AOP 部分的源码,并写成了文章.为了让我的 Spring 源码分析系列文章更为丰富一些,所以从本篇文章开始,我将来向大家介绍一 ...
- 谷歌地图API位置请求_Google Maps API
谷歌地图API位置请求 Google maps api 以xml格式传回请求的地址:http://maps.google.com/maps/api/geocode/xml?latlng=39.910 ...
- ios调用restful接口_Office 365 iOS SDK-如何调用SharePoint REST API
所有iOS SDK示例均提供了用于访问邮件,日历,ODfB文件的工作代码,但没有一个示例显示如何访问SharePoint列表项.因此,我正在尝试在Swift中进行一个简单的REST调用,但始终出现以下 ...
最新文章
- python重难点之装饰器详解
- Python开发笔记之正则表达式的使用
- 三菱plc两个16转换32位_三菱FX2NPLC如何将十进制数转换成十六进制-专业自动化论坛-中国工控网论坛...
- 【完结】你对深度学习模型的理解是否足够深刻,这12篇文章可以作为一个参考...
- 原生态Vim使用快捷键
- 15.IDA-查看XREF列表
- Java Spring源代码学习之how is bean scanned - did not answer when this.beanDefinitionNames is filled
- 怎么删除已经安装的mysql_怎么样删除已经安装的mysql | wdlinux致力于Linux服务器架构,性能优化.免费CDN加速系统,免费智能DNS解析,负载均衡,集群分流...
- View(视图)——对话框之一般对话框
- k-means聚类算法C++实现
- 华为荣耀4X的ROOT
- 使用360安全卫士对计算机进行体检,360安全卫士使用教程 电脑体检
- java cropper 上传_基于cropper.js的图片上传和裁剪
- 程序员工资一般多少_一般程序员真实工资 程序员工资薪酬大起底
- 知识图谱下图神经网络、图计算、图数据、图数据库未来发展趋势如何?
- C#的DataTable详解
- 关于JavaScript打印去掉页眉页脚
- 一次性计时器和间隔性计时器的实现
- Re:从零开始的DS生活 轻松和面试官扯一个小时栈
- linux下搜狗拼音隐藏悬浮状态栏
热门文章
- apicloud入门学习笔记1:简单介绍
- etcd部署简单说明
- 解决python3缺少zlib的问题
- ThreadLocal 在web环境下使用的边界问题
- nodejs 安装express
- 2015 UESTC Winter Training #6【Regionals 2010 North America - Rocky Mountain】
- VC编写程序在debug下正常,在release下错误
- 如何利用期限来完成任务
- [转载]windows2003上IIS+PyISAPIe1.1..0部署成功
- 诗与远方:无题(三十二)- 曾经写给妹子的一首诗