question

sp13test-6829 avatar image
0 Votes"
sp13test-6829 asked Jerryzy answered

REST API end point for deleting specific version of a SharePoint Document

trying to delete specific version of SharePoint document by Id. I have retrieved all the SharePoint Document versions by REST call with below code.

   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;
   })

What endpoint should I call to delete specific version by it's version Id?

office-sharepoint-server-development
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

1 Answer

Jerryzy avatar image
1 Vote"
Jerryzy answered

Hi @sp13test-6829 ,

The endpoint for deleting the specific version of a file will like this:

 https://Tenant.sharepoint.com/sites/SiteName/_api/web/GetFileByServerRelativeUrl('/sites/SiteName/DocName/code.png')/versions/DeleteByLabel('1.0')

Need to use GetFileByServerRelativeUrl to get the file object and then use DeleteByLabel for deleting the specific version, here is a complete code demo for your reference:

 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");
             }
         });
 }


Reference:

Delete File Version By Version Label in SharePoint using REST API

Thanks
Best Regards



If the response is helpful, please click "Accept Answer" and upvote it.

Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.



5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.