转自:https://technet.microsoft.com/zh-cn/subscriptions/index/dn450841.aspx#bk_Overview
适用范围:apps for SharePoint | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013
本文内容
关于本文中的请求示例
浏览 SharePoint 2013 文件和文件夹 REST 语法
文件资源
FileCollection 资源
文件版本资源
FileVersionCollection 资源
Folder 资源
FolderCollection 资源
其他资源
本文中的请求示例假设您正在使用跨域库 (SP.RequestExecutor.js) 发出跨域请求,因此它们在终结点 URI 中使用 SP.AppContextSite。有关详细信息,请参阅使用跨域库从外接程序访问 SharePoint 2013 数据。
使用请求示例之前,请执行下列操作:
更改 <应用程序 Web URL>、<主机 Web URL> 和其他占位符数据,例如 SharePoint 条目的任何 ID、名称或路径。
如果您未使用跨域库,请包括用于在所有 POST 请求中发送表单摘要值的 X-RequestDigest 标头,以及在请求正文中发送数据的 POST 请求的 content-length 标头。
如果您未发出跨域请求,请从终结点 URI 中删除SP.AppContextSite(@target)和?@target='
如果您使用 OAuth,请包括 Authorization 标头 ("Authorization": "Bearer " +
在请求示例中,从 url 和 body 属性值中删除换行符。将换行符添加到示例中,使其更易于读取。
如果您希望服务器以 Atom 格式返回响应,请删除"accept": "application/json; odata=verbose"标头。
请参阅其他资源获取有关使用跨域库、OAuth 和 SharePoint REST 服务的详细信息的链接。请参阅 REST 请求如何因环境而异和 REST 请求中使用的属性获取有关请求格式的信息。
提示 |
---|
SharePoint Online REST 服务支持使用 OData$batch查询选项,将多个请求组合到对服务的单个调用中。有关详细信息和代码示例链接,请参阅使用 REST API 发出批处理请求。内部部署 SharePoint 尚不支持此选项。 |
表示 SharePoint 网站中的文件,该文件可以是 Web 部件页面、文档库中的项目或文件夹中的文件。
终结点 URI | 属性 | 方法 | OData 表示
http://<网站 URL>/_api/web/getfilebyserverrelativeurl('/<文件夹名称>/<文件名称>')
GET | PUT (媒体资源)
GET | DELETE | POST (文件资源)
GET 请求示例:获取文件内容(媒体资源)
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/$value ?@target=' ' ", method: "GET", binaryStringResponseBody: true, success: successHandler, error: errorHandler });
GET 请求示例:获取文件元数据
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
PUT 请求实例:更新文件内容(媒体资源)
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.txt')/$value ?@target=' ' ", method: "POST", body: "Updated contents of the file go here", headers: { "X-HTTP-Method":"PUT" }, success: successHandler, error: errorHandler });
首先签出文件以避免其他用户进行更改。然后在进行了更改之后将其签回。请参阅 CheckOut 方法和 CheckIn 方法。
DELETE 请求示例:删除一个文件
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') ?@target=' ' ", method: "POST", headers: { "X-HTTP-Method":"DELETE" }, success: successHandler, error: errorHandler });
或者您可以使用 Recycle 方法删除文件并从已回收项中获取 GUID。
注释 |
---|
请参阅 Add 方法了解介绍如何创建文件并将其添加到文件夹的示例。 |
若要获取一个属性,请向属性终结点发送 GET 请求,如以下示例所示。
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/ ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
属性 |
类型 |
R/W |
返回资源 |
描述 |
---|---|---|---|---|
Author |
SP.User |
R |
不可访问 |
获取一个值,该值指定添加该文件的用户。 |
CheckedOutByUser |
SP.User |
R |
不可访问 |
获取一个值,该值返回签出文件的用户。 |
CheckInComment |
String |
R |
可访问 |
获取一个值,该值返回在将文档签入文档库时使用的注释。 |
CheckOutType |
Int32 |
R |
可访问 |
获取一个值,该值指定如何将文件签出文档库。 表示 SP.CheckOutType 值:Online = 0;Offline = 1;None = 2。 文件的签出状态与文件的锁定状态无关。 |
ContentTag |
String |
R |
可访问 |
返回内容的内部版本,用于验证文档在阅读目的方面的等同性。 |
CustomizedPageStatus |
Int32 |
R |
可访问 |
获取一个值,该值指定文件的自定义状态。 表示 SP.CustomizedPageStatus 值:None = 0;Uncustomized = 1;Customized = 2。 |
ETag |
String |
R |
可访问 |
获取指定 ETag 值的值。 |
Exists |
Boolean |
R |
可访问 |
获取一个值,该值指定文件是否存在。 |
Length |
Int64 |
R |
可访问 |
获取以字节表示的文件的大小,不包括文件中使用的任何 Web 部件的大小。 |
Level |
Byte |
R |
可访问 |
获取一个值,该值指定文件的发布级别。 表示 SP.FileLevel 值:Published = 1;Draft = 2;Checkout = 255。 |
ListItemAllFields |
SP.ListItem |
R |
不可访问 |
获取一个值,该值指定与此文件对应的列表项的列表项字段值。 |
LockedByUser |
SP.User |
R |
不可访问 |
获取一个值,该值返回拥有当前文件锁的用户。 |
MajorVersion |
Int32 |
R |
可访问 |
获取一个值,该值指定文件的主要版本。 |
MinorVersion |
Int32 |
R |
可访问 |
获取一个值,该值指定文件的次要版本。 |
ModifiedBy |
SP.User |
R |
不可访问 |
获取一个值,该值返回上次修改文件的用户。 |
Name |
String |
R |
可访问 |
获取包括扩展名在内的文件名称。 |
ServerRelativeUrl |
String |
R |
可访问 |
基于服务器的 URL 获取文件的相对 URL。 |
TimeCreated |
DateTime |
R |
可访问 |
获取指定该文件的创建时间的值。 |
TimeLastModified |
DateTime |
R |
可访问 |
获取一个值,该值指定文件的上次修改时间。 |
Title |
String |
R |
可访问 |
获取一个值,该值指定文件的显示名称。 |
UiVersion |
Int32 |
R |
可访问 |
获取一个值,该值指定特定于实现的文件版本标识符。 |
UiVersionLabel |
String |
R |
可访问 |
获取一个值,该值指定特定于实现的文件版本标识符。 |
Versions |
SP.FileVersionCollection |
R |
不可访问 |
获取一个值,该值返回表示文件版本的文件版本对象的集合。 |
Approve
CancelUpload
CheckIn
CheckOut
ContinueUpload
CopyTo
DeleteObject
Deny
FinishUpload
GetLimitedWebPartManager
MoveTo
OpenBinaryStream
Publish
Recycle
SaveBinaryStream
StartUpload
UndoCheckOut
Unpublish
批准已提交且需要使用指定注释进行内容审批的文件。
仅可对列表中为内容审批启用的文档进行审批。
终结点 |
/approve(comment) |
参数 |
|
HTTP 方法 |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /approve(comment='Check-in comment for the approval.') ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
停止分块上载会话,而不保存上载的数据。如果文件在库中尚不存在,将删除部分上载的文件。可使用此选项来响应用户操作(例如取消上载的请求)或错误或异常。
使用uploadId值,该值已传递到启动上载会话的 StartUpload 方法。
此方法当前仅在 Office 365 上可用。
Endpoint |
/cancelupload(uploadId) |
Parameters |
|
HTTP method |
POST |
Response |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /cancelupload(uploadId=guid'GUID') ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
基于签入类型将文件签入文档库。
Endpoint |
/checkin(comment, checkInType) |
Parameters |
|
HTTP method |
POST |
Response |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /checkin(comment='Check-in comment.',checkintype=0) ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
基于签出类型从文档库签出文件。
Endpoint |
/checkout |
Parameters |
无 |
HTTP method |
POST |
Response |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /checkout ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
使用一个附加片段继续分块上载会话。当前的文件内容不会更改。
使用uploadId值,该值已传递到启动上载会话的 StartUpload 方法。
此方法当前仅在 Office 365 上可用。
Endpoint |
/continueupload(uploadId, fileOffset) |
Parameters |
在 POST 正文中发送文件内容(数据流)。 |
HTTP method |
POST |
Response |
类型:Int64 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /continueupload(uploadId=guid'GUID',fileOffset=8388608) ?@target=' ' ", method: "POST", body: stream containing intermediate chunk of file success: successHandler, error: errorHandler });
将文件复制到目标 URL。
终结点 |
/copyto(strNewUrl, bOverWrite) |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /copyto(strnewurl='/foldername/filename.docx',boverwrite=false) ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
删除文件的建议方式是发送 DELETE 请求到 File 资源终结点,如 File 请求示例中所示。
拒绝审批已提交供内容审批的文件。
仅可对列表中为内容审批启用的文档进行拒绝。
终结点 |
/deny(comment) |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /deny(comment='Check-in comment for the denial.') ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
上载最后一个文件片段并提交该文件。此方法完成后,当前文件内容将会更改。
使用uploadId值,该值已传递到启动上载会话的 StartUpload 方法。
此方法当前仅在 Office 365 上可用。
Endpoint |
/finishupload(uploadId, fileOffset) |
Parameters |
在 POST 正文中发送文件内容(数据流)。 |
HTTP method |
POST |
Response |
类型:SP.File |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /finishupload(uploadId=guid'GUID',fileOffset=125829120) ?@target=' ' ", method: "POST", body: stream containing final chunk of file success: successHandler, error: errorHandler });
指定用于访问、修改或添加与此 Web 部件页和视图关联的 Web 部件的控件集。
如果文件不是 ASPX 页面,则引发一个异常。
终结点 |
/getlimitedwebpartmanager(scope) |
参数 |
|
HTTP method |
GET |
响应 |
类型:SP.WebParts.LimitedWebPartManager |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/fileName.aspx') /getlimitedwebpartmanager(scope=0) ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
将文件移动到指定的目标 URL。
终结点 |
/moveto(newUrl, flags) |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /moveto(newurl='/Other Folder/filename.docx',flags=1) ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
打开作为数据流的文件。
终结点 |
/openbinarystream |
参数 |
无 |
HTTP method |
GET |
响应 |
类型:Stream |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /openbinarystream ?@target=' ' ", method: "GET", binaryStringResponseBody: true, success: successHandler, error: errorHandler });
注释 |
---|
或者您可以使用文件资源中的 $value 打开文件。示例:…/getfilebyserverrelativeurl('/Shared Documents/filename.docx')/$value。 |
提交文件以使用指定的注释进行内容审批。
终结点 |
/publish(comment) |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /publish(comment='Check-in comment for the publish operation.') ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
将文件移到回收站并返回新回收站项目的标识符。
终结点 |
/recycle |
参数 |
无 |
HTTP method |
POST |
响应 |
类型:GUID |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /recycle ?@target=' ' ", method: "POST", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
终结点 |
/savebinary |
参数 |
在 POST 正文中发送文件内容(数据流)。 |
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /savebinarystream ?@target=' ' ", method: "POST", body: "This is the new content.", success: successHandler, error: errorHandler });
启动一个新的块上载会话并上载第一个片段。此方法完成时不更改当前文件内容。只要对 uploadId 和 stream 使用相同值,方法就为幂等(因此不会更改结果)。当您使用 CancelUpload 方法时,或者当您通过 ContinueUpload 和 FinishUpload 方法传递其余文件内容成功完成上载会话时,上载会话结束。
例如,您可以将一个 35 MB 的文件分成三个 10 MB 流和一个 5 MB 流并将它们上载(使用生成的偏移值 10、20 和 30 MB)来传递该文件:
startUpload(GUID, stream1)
continueUpload(GUID, 10 MB, stream2)
continueUpload(GUID, 20 MB, stream3)
finishUpload(GUID, 30 MB, stream4)
StartUpload 和 ContinueUpload 方法返回上载的总数据大小(以字节为单位),因此您可以传递这些返回值供 ContinueUpload 和 FinishUpload 后续使用。
此方法当前仅在 Office 365 上可用。
Endpoint |
/startupload(uploadId) |
Parameters |
在 POST 正文中发送文件内容(数据流)。 |
HTTP method |
POST |
Response |
类型:Int64 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /startupload(uploadId=guid'GUID') ?@target=' ' ", method: "POST", body: stream containing first chunk of file success: successHandler, error: errorHandler });
恢复文件的现有签出行为。
终结点 |
/undocheckout |
参数 |
无 |
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /undocheckout ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
从内容审批中删除文件或取消发布主要版本。
终结点 |
/unpublish |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /unpublish(comment='Check-in comment for the unpublish operation.') ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
以下示例表示 JSON 格式的 File 资源。
{"d":{ "__metadata":{, "id":"http:///_api/Web/GetFileByServerRelativeUrl('/Shared Documents/folderName/fileName.docx')", "uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName.docx')", "type":"SP.File" }, "Author":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName.docx')/Author"}}, "CheckedOutByUser":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName.docx')/CheckedOutByUser"}}, "ListItemAllFields":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName.docx')/ListItemAllFields"}}, "LockedByUser":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName.docx')/LockedByUser"}}, "ModifiedBy":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName.docx')/ModifiedBy"}}, "Versions":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName.docx')/Versions"}}, "CheckInComment":"Revisions to the file.", "CheckOutType":2, "ContentTag":"{2FBB0C3C-4059-41A2-A5CF-3E076EA0A94C},2,3", "CustomizedPageStatus":0, "ETag":"\"{2FBB0C3C-4059-41A2-A5CF-3E076EA0A94C},2\"", "Exists":true, "Length":"20609", "Level":1, "MajorVersion":1, "MinorVersion":0, "Name":"fileName.docx", "ServerRelativeUrl":"/Shared Documents/folderName/fileName.docx", "TimeCreated":"2013-05-16T21:01:23Z", "TimeLastModified":"2013-05-18T04:57:32Z", "Title":"", "UIVersion":512, "UIVersionLabel":"1.0" }}
表示 File 资源的集合。
终结点 URI | 方法 | OData 表示
http://<网站 URL>/_api/web/getfolderbyserverrelativeurl('/<文件夹名称>')/files
GET | POST
GET 请求示例:获取文件夹中所有文件的元数据
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A')/files ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
GET 请求示例:通过文件名称获取文件内容(媒体资源)
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A')/files('filename.docx')/$value ?@target=' ' ", method: "GET", binaryStringResponseBody: true, success: successHandler, error: errorHandler });
GET 请求示例:获取文件元数据
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A')/files('filename.docx') ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler };
请参阅 File 请求示例以获取如何使用 GetFileByServerRelativeUrl 终结点检索文件以及如何更新和删除文件的示例。若要创建文件,请参阅 Add 方法。
Add
AddTemplateFile
GetByUrl
终结点 |
/add(content, overwrite, url) |
参数 |
|
HTTP method |
POST |
响应 |
类型:SP.File |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A')/files /add(overwrite=true,url='filename.txt') ?@target=' ' ", method: "POST", body: "Contents of the file go here", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
以下示例显示如何使用跨域库上载二进制文件,这需要将文件流转换为字符串。有关 jQuery 示例,请参阅使用 REST API 和 jQuery 上载文件。
function addFile(arrayBuffer) { var executor = new SP.RequestExecutor(appWebUrl); // Construct the endpoint. // The GetList method is available for SharePoint Online only. var fileCollectionEndpoint = String.format( "{0}/_api/sp.appcontextsite(@target)/web/getlist('{1}')/" + "rootfolder/files/add(overwrite=true, url='{2}')?@target='{3}'", appWebUrl, listName, fileName, hostWebUrl); var fileData = ''; var byteArray = new Uint8Array(arrayBuffer); for (var i = 0; i < byteArray.byteLength; i++) { fileData += String.fromCharCode(byteArray[i]); } // Send the request. executor.executeAsync({ url: fileCollectionEndpoint, method: "POST", body: fileData, binaryStringRequestBody: true, headers: {"accept":"application/json;odata=verbose"}, success: function (data) { alert('File upload succeeded.'); }, error: function (err) { alert('Error: ' + err.responseText); } }); }
向现有列表或文档库中添加幻影文件。
终结点 |
/addTemplateFile(urlOfFile,templateFileType) |
参数 |
|
HTTP method |
POST |
响应 |
类型:SP.File |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents')/files /addtemplatefile(urloffile='/Shared Documents/newwikipage.aspx',templatefiletype=1) ?@target=' ' ", method: "POST", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
获取指定 URL 处的文件。
获取文件的建议方式是通过 GetFileByServerRelativeUrl 终结点。请参阅 SP.File 请求示例。
终结点 |
/getbyurl('<文件名称或相对于服务器的 URL>') |
参数 |
无 |
HTTP method |
GET |
响应 |
类型:SP.File |
请求示例
获取文件内容(媒体资源)
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/foldername')/files /getbyurl('filename.docx')/$value ?@target=' ' ", method: "GET", binaryStringResponseBody: true, success: successHandler, error: errorHandler });
获取文件的元数据(文件资源)
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/foldername')/files /getbyurl('filename.docx') ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
请参阅File 请求示例和FileCollection 请求示例以查看获取文件的其他方式。
以下示例表示 JSON 格式的文件集合资源。
{"d":{ "results":[{ "__metadata":{ "id":"http:///_api/Web/GetFileByServerRelativeUrl('/Shared Documents/folderName/fileName1.docx')", "uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName1.docx')", "type":"SP.File" }, "Author":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName1.docx')/Author"}}, "CheckedOutByUser":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName1.docx')/CheckedOutByUser"}}, "ListItemAllFields":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName1.docx')/ListItemAllFields"}}, "LockedByUser":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName1.docx')/LockedByUser"}}, "ModifiedBy":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName1.docx')/ModifiedBy"}}, "Versions":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName1.docx')/Versions"}}, "CheckInComment":"", "CheckOutType":2, "ContentTag":"{2FBB0C3C-4059-41A2-A5CF-3E076EA0A94C},4,7", "CustomizedPageStatus":0, "ETag":"\"{2FBB0C3C-4059-41A2-A5CF-3E076EA0A94C},4\"", "Exists":true, "Length":"20609", "Level":1, "MajorVersion":1, "MinorVersion":0, "Name":"fileName1.docx", "ServerRelativeUrl":"/Shared Documents/folderName/fileName1.docx", "TimeCreated":"2013-05-16T21:01:23Z", "TimeLastModified":"2013-06-09T02:38:14Z", "Title":"Title of fileName1", "UIVersion":512, "UIVersionLabel":"1.0" },{ "__metadata":{ "id":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared Documents/folderName/fileName2.docx')", "uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName2.docx')", "type":"SP.File" }, "Author":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName2.docx')/Author"}}, "CheckedOutByUser":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName2.docx')/CheckedOutByUser"}}, "ListItemAllFields":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName2.docx')/ListItemAllFields"}}, "LockedByUser":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName2.docx')/LockedByUser"}}, "ModifiedBy":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName2.docx')/ModifiedBy"}}, "Versions":{"__deferred":{"uri":"http:// /_api/Web/GetFileByServerRelativeUrl('/Shared%20Documents/folderName/fileName2.docx')/Versions"}}, "CheckInComment":"", "CheckOutType":2, "ContentTag":"{E654B970-C4BF-4DC5-9719-B5B01CAD6FD9},4,9", "CustomizedPageStatus":0, "ETag":"\"{E654B970-C4BF-4DC5-9719-B5B01CAD6FD9},4\"", "Exists":true, "Length":"12263", "Level":1, "MajorVersion":1, "MinorVersion":0, "Name":"fileName2.docx", "ServerRelativeUrl":"/Shared Documents/folderName/fileName2.docx", "TimeCreated":"2013-05-18T05:01:51Z", "TimeLastModified":"2013-06-09T02:38:59Z", "Title":"Title of fileName2", "UIVersion":512, "UIVersionLabel":"1.0" }]}}
表示 File 资源的版本。
终结点 URI | 属性 | 方法 | OData 表示
http://<网站 URL>/_api/web/getfilebyserverrelativeurl('/<文件夹名称>/<文件名称>')/versions(<版本 ID>)
GET | POST | DELETE
GET 请求示例:获取文件版本的元数据
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions(512) ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
DELETE 请求示例:删除文件的特定版本
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions(513) ?@target=' ' ", method: "POST", headers: { "X-HTTP-Method":"DELETE" }, success: successHandler, error: errorHandler });
若要获取一个属性,请向属性终结点发送 GET 请求,如以下示例所示。
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx') /versions(512)/ ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
属性 |
类型 |
R/W |
返回资源 |
描述 |
---|---|---|---|---|
CheckInComment |
String |
R |
可访问 |
获取一个值,该值指定签入注释。 |
Created |
DateTime |
R |
可访问 |
获取一个值,该值指定文件版本的创建日期和时间。 |
CreatedBy |
SP.User |
R |
不可访问 |
获取一个值,该值指定表示文件版本的创建者的用户。 |
ID |
Int32 |
R |
可访问 |
获取文件版本的内部标识符。 |
IsCurrentVersion |
Boolean |
R |
可访问 |
获取一个值,该值指定文件版本是否是当前版本。 |
Size |
Int32 |
R |
可访问 |
|
Url |
String |
R |
可访问 |
获取一个值,该值指定文件版本的相对 URL,以网站或子网站的 URL 为基础。 |
VersionLabel |
String |
R |
可访问 |
获取一个值,该值指定特定于实现的文件标识符。 使用 majorVersionNumber.minorVersionNumber 格式,例如:1.2。 |
DeleteObject
删除文件版本的建议方式是发送 DELETE 请求到 FileVersion 资源终结点,如 FileVersion 请求示例中所示。
以下示例表示 JSON 格式的 FileVersion 资源。
{"d":{ "__metadata":{, "id":"http:///_api/web/getfilebyserverrelativeurl('/Shared Documents/folderName/fileName1.docx')/versions(512)", "uri":"http:// /_api/web/getfilebyserverrelativeurl('/Shared%20Documents/folderName/fileName1.docx')/versions(512)", "type":"SP.FileVersion" }, "CreatedBy":{"__deferred":{"uri":"http:// /_api/web/getfilebyserverrelativeurl('/Shared%20Documents/folderName/fileName1.docx')/versions(512)/CreatedBy"}}, "CheckInComment":"Revisions to the file.", "Created":"2013-06-10T04:02:53Z", "ID":512, "IsCurrentVersion":true, "Size":20609, "Url":"_vti_history/512/Shared Documents/folderName/fileName1.docx", "VersionLabel":"1.0" }}
表示 FileVersion 资源的集合。
终结点 URI | 方法 | OData 表示
http://<网站 URL>/_api/web/getfilebyserverrelativeurl('/<文件夹名称>/<文件名称>')/versions
此资源支持以下 HTTP 方法:
GET | POST
GET 请求示例:获取文件所有版本的元数据
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
GET 请求示例:获取文件版本的元数据
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions(512) ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
DeleteAll
DeleteById
DeleteByLabel
GetById
RestoreByLabel
删除集合中的所有文件版本对象。
终结点 |
/deleteall |
参数 |
无 |
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions /deleteall ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
删除文件的指定版本。
终结点 |
/deletebyid(vid) |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions /deletebyid(vid=3) ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
删除具有指定版本标签的文件版本对象。
终结点 |
/deletebylabel(versionlabel) |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions /deletebylabel(versionlabel='1.2') ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
终结点 |
/getbyid(versionid) |
参数 |
|
HTTP method |
GET |
响应 |
类型:SP.FileVersion |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions /getbyid(512) ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
或者您可以直接将版本 ID 传递到集合 (…/versions(512))。请参阅FileVersionCollection 请求示例。
从版本标签指定的文件创建新文件版本。
终结点 |
/restorebylabel(versionlabel) |
参数 |
|
HTTP method |
POST |
响应 |
无 |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfilebyserverrelativeurl('/Shared Documents/filename.docx')/versions /restorebylabel(versionlabel='1.2') ?@target=' ' ", method: "POST", success: successHandler, error: errorHandler });
以下示例表示 JSON 格式的 FileVersionCollection 资源。
{"d":{ "results":[{ "__metadata":{ "id":"http:///_api/SP.FileVersiona6a6bb00-2b96-41e6-a901-46df015183b9", "uri":"http:// /_api/SP.FileVersiona6a6bb00-2b96-41e6-a901-46df015183b9", "type":"SP.FileVersion" }, "CreatedBy":{"__deferred":{"uri":"http:// /_api/SP.FileVersiona6a6bb00-2b96-41e6-a901-46df015183b9/CreatedBy"}}, "CheckInComment":"", "Created":"2013-06-10T04:02:53Z", "ID":512, "IsCurrentVersion":true, "Size":20609, "Url":"_vti_history/512/Shared Documents/folderName/fileName1.docx", "VersionLabel":"1.0" },{ "__metadata":{ "id":"http:// /_api/SP.FileVersion6accd876-7579-47b6-9779-19a24f6ab8a1", "uri":"http:// /_api/SP.FileVersion6accd876-7579-47b6-9779-19a24f6ab8a1", "type":"SP.FileVersion" }, "CreatedBy":{"__deferred":{"uri":"http:// /_api/SP.FileVersion6accd876-7579-47b6-9779-19a24f6ab8a1/CreatedBy"}}, "CheckInComment":"Revisions to the file.", "Created":"2013-06-11T17:42:41Z", "ID":513, "IsCurrentVersion":false, "Size":17973, "Url":"_vti_history/513/Shared Documents/folderName/fileName1.docx", "VersionLabel":"1.1" }]}}
表示 SharePoint 网站上的文件夹。
终结点 URI | 属性 | 方法 | OData 表示
http://<网站 URL>/_api/web/getfolderbyserverrelativeurl('/<文件夹名称>')
GET | POST | DELETE | MERGE | PUT
GET 请求示例:获取一个文件夹
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A') ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
MERGE 请求示例:更改一个文件夹
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A') ?@target=' ' ", method: "POST", body: "{ '__metadata':{ 'type': 'SP.Folder' }, 'WelcomePage':'Folder B/WelcomePage.aspx' }", headers: { "content-type": "application/json; odata=verbose", "X-HTTP-Method": "MERGE" }, success: successHandler, error: errorHandler });
DELETE 请求示例:删除一个文件夹
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A') ?@target=' ' ", method: "POST", headers: { "X-HTTP-Method":"DELETE" }, success: successHandler, error: errorHandler });
请参阅 FolderCollection 请求示例以获取如何创建文件夹的示例。
若要获取一个属性,请向属性终结点发送 GET 请求,如以下示例所示。
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A')/ ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
若要设置一个可写属性、获取资源、在正文中设置属性值,然后使用资源上的 MERGE 方法合并更改,或使用 PUT 方法替换资源。请参阅 Folder 请求示例以获取示例。
属性 |
类型 |
R/W |
返回资源 |
描述 |
---|---|---|---|---|
ContentTypeOrder |
Collection(SP.ContentTypeId) |
R |
可访问 |
指定内容类型的显示顺序。 |
Files |
SP.FileCollection |
R |
不可访问 |
获取列表文件夹中包含的所有文件的集合。 您可以使用文件夹的 FileCollection 资源中的 Add 方法将一个文件添加到文件夹。 |
Folders |
SP.FolderCollection |
R |
不可访问 |
获取列表文件夹中包含的列表文件夹的集合。 |
ItemCount |
Int32 |
R |
可访问 |
获取一个值,该值指定列表文件夹中的项计数。 |
ListItemAllFields |
SP.ListItem |
R |
不可访问 |
指定与此文件对应的列表项的列表项字段 (2) 值。 |
Name |
String |
R |
可访问 |
获取文件夹的名称。 |
ParentFolder |
SP.Folder |
R |
不可访问 |
获取该文件夹的父列表文件夹。 |
Properties |
SP.PropertyValues |
R |
不可访问 |
获取文件夹中包含的所有文件的集合。 |
ServerRelativeUrl |
String |
R |
可访问 |
获取列表文件夹相对于服务器的 URL。 |
UniqueContentTypeOrder |
Collection(SP.ContentTypeId) |
RW |
可访问 |
获取或设置一个值,该值指定内容类型顺序。 |
WelcomePage |
String |
RW |
可访问 |
获取或设置一个值,该值指定列表文件夹欢迎页面相对于文件夹的 URL。 |
DeleteObject
Recycle
删除文件夹的建议方式是发送 DELETE 请求到 Folder 资源终结点,如 Folder 请求示例中所示。
将列表文件夹移到回收站并返回新回收站项目的标识符。
终结点 |
/recycle |
HTTP method |
POST |
参数 |
无 |
响应 |
类型:GUID |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A') /recycle ?@target=' ' ", method: "POST", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
以下示例表示 JSON 格式的 Folder 资源。
{"d":{ "__metadata":{, "id":"http:///_api/Web/GetFolderByServerRelativeUrl('/Shared Documents/Folder A')", "uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Folder%20A')", "type":"SP.Folder" }, "Files":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Folder%20A')/Files"}}, "ListItemAllFields":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Folder%20A')/ListItemAllFields"}}, "ParentFolder":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Folder%20A')/ParentFolder"}}, "Properties":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Folder%20A')/Properties"}}, "Folders":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Folder%20A')/Folders"}}, "ItemCount":7, "Name":"Folder A", "ServerRelativeUrl":"/Shared Documents/Folder A", "WelcomePage":"" }}
表示 Folder 资源的集合。
终结点 URI | 方法 | OData 表示
http://<网站 URL>/_api/web/folders (根网站的顶级文件夹)
http://<网站 URL>/_api/web/getfolderbyserverrelativeurl('/<文件夹名称>')/folders
GET | POST
GET 请求示例:获取根网站的文件夹
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web/folders ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
GET 请求示例:获取文档库中的文件夹
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents')/folders ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
GET 请求示例:通过名称获取文件夹
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A')/folders('Folder B') ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
POST 请求示例:创建一个文件夹(或者您可以使用 Add 方法)
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web /getfolderbyserverrelativeurl('/Shared Documents/Folder A')/folders ?@target=' ' ", method: "POST", body: "{ '__metadata':{ 'type': 'SP.Folder' }, 'ServerRelativeUrl':'Folder B' }", headers: { "accept": "application/json; odata=verbose", "content-type": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
请参阅Folder 请求示例以获取如何更新和删除文件夹的示例。
Add
GetByUrl
向集合中添加位于指定 URL 处的文件夹。
终结点 |
/add(url) |
参数 |
|
HTTP method |
POST |
响应 |
类型:SP.Folder |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web/folders /add('/Shared Documents/Folder A/Folder B') ?@target=' ' ", method: "POST", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
终结点 |
/getbyurl('<相对于服务器的文件夹 URL>') |
参数 |
类型:String |
HTTP method |
GET |
响应 |
类型:SP.Folder |
请求示例
executor.executeAsync({ url: "/_api/SP.AppContextSite(@target)/web/folders /getbyurl('Folder B') ?@target=' ' ", method: "GET", headers: { "accept": "application/json; odata=verbose" }, success: successHandler, error: errorHandler });
您还可以直接将文件夹名称传递到文件夹集合。示例:…/folders('Folder B')。请参阅 FolderCollection 请求示例。
以下示例表示 JSON 格式的 FolderCollection 资源。
{"d":{ "results":[{ "__metadata":{ "id":"http:///_api/Web/GetFolderByServerRelativeUrl('/Shared Documents/Forms')", "uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Forms')", "type":"SP.Folder" }, "Files":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Forms')/Files"}}, "ListItemAllFields":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Forms')/ListItemAllFields"}}, "ParentFolder":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Forms')/ParentFolder"}}, "Properties":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Forms')/Properties"}}, "Folders":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Forms')/Folders"}}, "ItemCount":0, "Name":"Forms", "ServerRelativeUrl":"/Shared Documents/Forms", "WelcomePage":"" },{ "__metadata":{ "id":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared Documents/folderName')", "uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/folderName')", "type":"SP.Folder" }, "Files":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/folderName')/Files"}}, "ListItemAllFields":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/folderName')/ListItemAllFields"}}, "ParentFolder":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/folderName')/ParentFolder"}}, "Properties":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/folderName')/Properties"}}, "Folders":{"__deferred":{"uri":"http:// /_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/folderName')/Folders"}}, "ItemCount":4, "Name":"folderName", "ServerRelativeUrl":"/Shared Documents/folderName", "WelcomePage":"" }]}}