• 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: 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接口部分的讲述就到这里。

  • 相关阅读:
    python list间的并集、差集与交集
    kafka常用命令,启动/停止/查看主题列表/消费/生产
    python json
    lrzsz
    HashMap实现原理,源码分析
    Java中try catch finally语句中含有return语句的执行情况
    Maven
    我的面试题
    JSON数据格式
    springMVC2
  • 原文地址:https://www.cnblogs.com/justinliu/p/8443659.html
Copyright © 2020-2023  润新知