繁体   English   中英

通过 REST API 获取 SharePoint 文档库中链接项后面的 URL

[英]Get the URL behind link items in SharePoint document library via REST API

我有一个自定义 Web 部件,可以连接到不同的数据源(例如 SharePoint 文档库)。 然后我可以将项目属性从该文档库映射到我的不同视图模板之一。

问题是当我在该文档库中添加链接项(外部 URL)时,我找不到存储该外部 URL 的项属性。

在此处输入图片说明

现在我通过 SharePoint REST API 获取项目属性。 我检查了FileRefEncodedAbsUrl的值,但这些是指向 SharePoint 文档库文件的 URL,而不是指向外部 URL。

经过一些调查,我在开发工具 (F12) 网络选项卡中看到,有一个对https://{siteurl}/_api/SP.Utilities.ShortcutLink.GetShortcutLink(@a1)?@a1={siteUrl}/Shared%20Documents/www.dummysite.com.url它将检索实际链接的外部 URL,但这对我来说不是一个好的选择,因为对每个项目进行另一个 REST 调用会影响我的性能。

那么是否有任何项目属性可以通过 REST API 扩展以获取外部 URL?

您可以提取特定项目的属性,然后选择“vti_x005f_shortcuturl”属性。 例如

    https://<your site url>/_api/web/lists/getbytitle("your library 
    name")/items(1)/properties?$select=vti_x005f_shortcuturl 

如果您事先没有项目 id,那么首先在第一次调用中使用 rest api 从文档库中仅获取 Id,因为如果您必须两次调用 rest api,您会关心性能,然后为每个项目 ID 调用上面的 api 需要属性而已。 在上面的示例中,如果可用,它将返回第一个项目 ("/items(1)/") 链接后面的 url。

SharePoint Online 不为 Properties/vti_x005f_shortcuturl 返回任何内容

但是,我可以通过展开“文件”并选择“文件/ServerRelativeUrl”来检索 URL“/sites/sitename/.../surprisedPikachu.jpg”。

$expand=File&$select=*,File/Name,File/ServerRelativeUrl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM