Sharepoint API中的跳过和顶部参数

时间:2018-08-28 11:34:10

标签: rest api web-services sharepoint

我们正在尝试查询Sharepoint API。我们使用下面的查询来获得前5000名,并且它可以工作。

  https://abc.123.org/sites/js/project/_api/web/lists/GetByTitle('S%20Codes')/items?$top=5000

但是如果我们尝试获得超过5000条记录,就会中断。我们还尝试使用query参数中的skip获取下5000条记录,但该记录不起作用

https://abc.123.org/sites/js/project/_api/web/lists/GetByTitle('S%20Codes')/ items?$ skip = 5000&$ top = 5000

如何跳过第一组记录并获取下一组记录。

2 个答案:

答案 0 :(得分:0)

呼叫端点:

https://abc.123.org/sites/js/project/_api/web/lists/GetByTitle('S%20Codes')/items?$top=5000

搜索link rel="next",在此标记中,您将找到属性href,类似于:items?%24skiptoken=Paged%3dTRUE%26p_ID%3d2&%24top=5000。在此URL中,仅ID参数会根据结果的最后一个项目ID的ID进行更改。

该URL给您接下来的5000个项目。

答案 1 :(得分:0)

$ skip参数在SharePoint 2013中不适用于列表项。 参考-https://sharepoint.stackexchange.com/questions/126565/issue-with-skip-in-rest-api

但是,我发现的最简单的方法是使用SharePoint PnP.js 请参阅-https://github.com/SharePoint/PnP-JS-Core

您只需要添加对jQuery和PnP.js库文件的引用即可开始使用它。

请参考以下代码。它将跳过前1000条记录,并获取下1000条记录集:

<script type="text/javascript" src="/sites/mySiteName/SiteAssets/Javascripts/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="/sites/mySiteName/SiteAssets/Javascripts/pnp.js"></script>

<script type="text/javascript">

    $(document).ready(function(){
        $pnp.sp.web.lists.getByTitle("S%20Codes").items.skip(1000).top(1000).get().then(successHandler, FailureHandler);

        function successHandler(response){
            if(response.length > 0){
                console.log(response.length); 
            }
        }

        function FailureHandler(err){
            // failure handler code
        }
    });

</script>