我正在开发一个插件,在处理完文档后将文档导出到SharePoint存储库。与文档一起,我需要发送在SharePoint中定义的自定义元数据列的值。
我已经找到了如何将文件和元数据发送到指定位置。
问题:最初,我不知道给定文件夹中可用的自定义元数据列。 有人可以了解任何可以获取存储库中给定位置的可用元数据列的REST Web服务。
注意:我使用Apache HTTP Client将纯Java用于REST请求。
答案 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
来获取此参数。这是一篇关于它的文章:
此外,您必须在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>