用于获取自定义元数据列的SharePoint REST API

时间:2015-12-09 12:48:54

标签: rest sharepoint

我正在开发一个插件,在处理完文档后将文档导出到SharePoint存储库。与文档一起,我需要发送在SharePoint中定义的自定义元数据列的值。

我已经找到了如何将文件和元数据发送到指定位置。

问题:最初,我不知道给定文件夹中可用的自定义元数据列。 有人可以了解任何可以获取存储库中给定位置的可用元数据列的REST Web服务。

注意:我使用Apache HTTP Client将纯Java用于REST请求。

2 个答案:

答案 0 :(得分:1)

用于检索列表中自定义字段的REST URL是:

_api/web/lists/GetByTitle('Custom List')/fields

我不太了解在java中解析JSON,但是这将为您提供所有列的列表以及有关它们的详细信息。我展示了下面返回的一些数据。

DefaultValue : null
Description : ""
EnforceUniqueValues : false
Id : "fa564e0f-0c70-4ab9-b863-0177e6ddd123"
Indexed : false
InternalName : "Title"
ReadOnlyField : false
Required : false
StaticName : "Title"
Title : "Title"
FieldTypeKind : 2
TypeAsString : "Text"
TypeDisplayName : "Single line of text"

如果您需要获取特定文件夹的可用列,而不是库:

_api/web/getfolderbyserverrelativeurl('/Shared%20Documents/Folder')/ListItemAllFields

答案 1 :(得分:0)

如果您使用POST通过CAML请求获取信息,则SharePoint 2013有一个REST API端点,可以检索和过滤元数据列。如果您的请求是从SharePoint本身提出的,那么您将使用母版页RequestDigest,但由于您是远程执行此操作,因此您必须通过查询/_api/contextinfo并获取FormDigestValue来获取此参数。这是一篇关于它的文章:

http://www.cleverworkarounds.com/2013/09/23/how-to-filter-on-a-managed-metadata-column-via-rest-in-sharepoint-2013/

此外,您必须在SharePoint数据存储库上启用CORS

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
   </httpProtocol>
 </system.webServer>
</configuration>