在使用REST API检索有关位于文档库的文档的信息时,我在SharePoint 2013SP中遇到了奇怪的行为。
以下是对该问题的描述,重现步骤为:
我是在SharePoint 2013SP1服务器上完成的 - 刚刚安装。
现在,当我查询服务器以查找'协作中的文档时子网站我使用以下REST调用:
http://localhost/collab/_api/Web/lists/getByTitle('Documents')/Items
这将返回2个位于顶级站点文档库中的文档,不只返回来自collab子站点的一个文档。奇怪。
运行此网址时得到的结果完全相同:
http://localhost/_api/Web/lists/getByTitle('Documents')/Items
为什么SharePoint不尊重网址中的子网站名称?
此时我想也许我使用的是错误的端点,所以我决定尝试别的东西:
http://localhost/collab/_api/Web/GetFolderByServerRelativeUrl('/collab/Shared%20Documents')
令我惊讶的是,返回正确数量的文件:1
查询顶级网站也会返回正确数量的项目:2。
http://localhost/_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents')
所以现在我尝试检索有关顶级站点和子站点的文档库内容的信息:
首先是顶级网站:
http://localhost/_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents')/Files
此请求给出了正确的响应,有两个项目。
让我们看看我是否为子站点获得相同的内容:
http://localhost/collab/_api/Web/GetFolderByServerRelativeUrl('/collab/Shared%20Documents')/Files
可悲的是,我得到了一个很难理解的回复:
<feed xml:base="http://localhost/_api/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
<id>8f772a2c-2d90-4324-9168-3344aedca14b</id>
<title/>
<updated>2018-01-28T11:37:22Z</updated>
<author>
<name/>
</author>
</feed>
这种反应是什么意思?
当我尝试稍微不同的网址时:
http://localhost/collab/_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents')/Files
我会收到有关顶级网站中文档的回复详情,即使我已经合作了#39;网址中的网站名称。这是怎么回事?
问题是:
谢谢!
的Karol
答案 0 :(得分:0)
使用以下REST URL从根站点的文档库中获取文件:
$ awk -F "" '{for(i=1;i<=5;i++)a[i]=a[i] ($i==""?" ":$i)}END{print a[1] ORS a[5] ORS a[3]}' file
c8431498 0e639b1bd45c
c843149c405a3c 10 47c3
|> || |< |< | >
使用以下REST URL从子站点(&#34; collab&#34;)中的文档库中获取文件:
http://localhost/_api/Web/GetFolderByServerRelativeUrl('Shared%20Documents')/Files
如果仍然无效,我建议您更新最新的SharePoint 2013。 Latest Updates for SharePoint 2013