sharepoint-online - 什么是用于删除特定版本的 SharePoint 文档的 REST API 端点
问题描述
我正在尝试按 ID 删除特定版本的 SharePoint 文档。我已经使用以下代码通过 REST 调用检索了所有 SharePoint 文档版本。
let URL : string = `${this.context.pageContext.web.absoluteUrl}/_api/Web/lists/getById('${listId}')/items(${documentId.Id})/versions`;
this.context.spHttpClient.get(URL,SPHttpClient.configurations.v1).then(response=>{
return response.json();
}).then(json=>{
return json.value;
})
我应该调用哪个端点按版本 ID 删除特定版本?
解决方案
删除文件特定版本的端点将如下所示:
https://Tenant.sharepoint.com/sites/SiteName/_api/web/GetFileByServerRelativeUrl('/sites/SiteName/DocName/code.png')/versions/DeleteByLabel('1.0')
需要使用GetFileByServerRelativeUrl获取文件对象,然后使用DeleteByLabel删除具体版本,这里有一个完整的代码demo供大家参考:
function DeleteFileVersionByVersionLabel() {
var WebServerRelativeUrl = _spPageContextInfo.webServerRelativeUrl;
// Provide Internal name of the library here
var DocuentLibraryInternalName = "Document%20Library";
// Provide name of the document
var DocumentName = "test doc.docx";
var ServerRelativeUrlofFile = _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFileByServerRelativeUrl('" + WebServerRelativeUrl + "/" + DocuentLibraryInternalName + "/" + DocumentName + "')"
$.ajax
({
// _spPageContextInfo.webAbsoluteUrl - will give absolute URL of the site where you are running the code.
// You can replace this with other site URL where you want to apply the function
// NOTE: Version Label is nothing but the version number you see in the Version History
url: ServerRelativeUrlofFile + "/versions/DeleteByLabel('4.5')",
type: "POST",
headers:
{
// Accept header: Specifies the format for response data from the server.
"Accept": "application/json;odata=verbose",
//Content-Type header: Specifies the format of the data that the client is sending to the server
"Content-Type": "application/json;odata=verbose",
// IF-MATCH header: Provides a way to verify that the object being changed has not been changed since it was last retrieved.
// "IF-MATCH":"*", will overwrite any modification in the object, since it was last retrieved.
"IF-MATCH": "*",
//X-HTTP-Method: The MERGE method updates only the properties of the entity , while the PUT method replaces the existing entity with a new one that you supply in the body of the POST
"X-HTTP-Method": "DELETE",
// X-RequestDigest header: When you send a POST request, it must include the form digest value in X-RequestDigest header
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data, status, xhr) {
console.log("Success");
},
error: function (xhr, status, error) {
console.log("Failed");
}
});
}
参考:
推荐阅读
- bash - 未找到 ZSH 命令,即使命令在我的 $PATH 中
- filter - Powerapp 按用户办公地点过滤
- linux - 使用 echo >> 会产生不一致的结果
- python - 动态创建类属性
- sql - 我应该如何为电子商务列表和订单设计 sql 模式?
- javascript - 如何在javascript中执行部分日期比较,忽略年份?
- python - 是否可以选择包含托管在在线虚拟主机上的 Python 脚本?
- c# - 如何在不对类进行硬编码的情况下将类传递给泛型?
- python - 在 azure devops 中将单元和集成测试设置为基于 python 的 azure 函数的正确方法
- javascript - 单击行的展开按钮时,Datatables row.data() 返回未定义